[
https://issues.apache.org/jira/browse/DRILL-4275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15147882#comment-15147882
]
ASF GitHub Bot commented on DRILL-4275:
---------------------------------------
Github user sudheeshkatkam commented on a diff in the pull request:
https://github.com/apache/drill/pull/374#discussion_r52953040
--- Diff:
common/src/main/java/org/apache/drill/common/collections/ImmutableEntry.java ---
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.drill.common.collections;
+
+import java.util.Map;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+
+public class ImmutableEntry<K, V> implements Map.Entry<K, V> {
+ private final K key;
+ private final V value;
+
+ public ImmutableEntry(final K key, final V value) {
+ this.key = Preconditions.checkNotNull(key, "key is required");
+ this.value = Preconditions.checkNotNull(value, "value is required");
+ }
+
+ @Override
+ public K getKey() {
+ return key;
+ }
+
+ @Override
+ public V getValue() {
+ return value;
+ }
+
+ @Override
+ public V setValue(final V value) {
+ throw new UnsupportedOperationException("entry is immutable");
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ if (other instanceof ImmutableEntry && other.getClass() == getClass())
{
+ final ImmutableEntry<K, V> entry = (ImmutableEntry<K, V>)other;
+ return Objects.equal(key, entry.key) && Objects.equal(value,
entry.value);
--- End diff --
google.common.base.Objects#equal and #hashCode [should be treated as
deprecated](https://github.com/google/guava/blob/master/guava/src/com/google/common/base/Objects.java#L55).
> Refactor e/pstore interfaces and their factories to provide a unified
> mechanism to access stores
> ------------------------------------------------------------------------------------------------
>
> Key: DRILL-4275
> URL: https://issues.apache.org/jira/browse/DRILL-4275
> Project: Apache Drill
> Issue Type: Improvement
> Components: Execution - Flow
> Reporter: Hanifi Gunes
> Assignee: Deneche A. Hakim
>
> We rely on E/PStore interfaces to persist data. Even though E/PStore stands
> for Ephemeral and Persistent stores respectively, the current design for
> EStore does not extend the interface/functionality of PStore at all, which
> hints abstraction for EStore is redundant. This issue proposes a new unified
> Store interface replacing the old E/PStore that exposes an additional method
> that report persistence level as follows:
> {code:title=Store interface}
> interface Store<V> {
> StoreMode getMode();
> V get(String key);
> ...
> }
> enum StoreMode {
> EPHEMERAL,
> PERSISTENT,
> ...
> }
> {code}
> The new design brings in less redundancy, more centralized code, ease to
> reason and maintain.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)