Adding interfaces and single implementation required for build.

Change-Id: I65d2ce71f29e3d0c031ca3a7713835468c7c062c
diff --git a/core/api/src/main/java/org/onosproject/store/service/ConsistentTreeMap.java b/core/api/src/main/java/org/onosproject/store/service/ConsistentTreeMap.java
new file mode 100644
index 0000000..0b83606
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/store/service/ConsistentTreeMap.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.onosproject.store.service;
+
+import java.util.Map;
+import java.util.NavigableSet;
+
+/**
+ * Tree map interface counterpart to {@link AsyncConsistentTreeMap}.
+ */
+ public interface ConsistentTreeMap<K, V> extends ConsistentMap<K, V> {
+
+    /**
+     * Returns the lowest key in the map.
+     *
+     * @return the key or null if none exist
+     */
+     K firstKey();
+
+    /**
+     * Returns the highest key in the map.
+     *
+     * @return the key or null if none exist
+     */
+     K lastKey();
+
+    /**
+     * Returns the entry associated with the least key greater than or equal to the key.
+     *
+     * @param key the key
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> ceilingEntry(K key);
+
+    /**
+     * Returns the entry associated with the greatest key less than or equal to key.
+     *
+     * @param key the key
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> floorEntry(K key);
+
+    /**
+     * Returns the entry associated with the lest key greater than key.
+     *
+     * @param key the key
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> higherEntry(K key);
+
+    /**
+     * Returns the entry associated with the largest key less than key.
+     *
+     * @param key the key
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> lowerEntry(K key);
+
+    /**
+     * Returns the entry associated with the lowest key in the map.
+     *
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> firstEntry();
+
+    /**
+     * Returns the entry associated with the highest key in the map.
+     *
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> lastEntry();
+
+    /**
+     * Returns and removes the entry associated with the lowest key.
+     *
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> pollFirstEntry();
+
+    /**
+     * Returns and removes the entry associated with the highest key.
+     *
+     * @return the entry or null
+     */
+     Map.Entry<K, Versioned<V>> pollLastEntry();
+
+    /**
+     * Returns the entry associated with the greatest key less than key.
+     *
+     * @param key the key
+     * @return the entry or null
+     */
+     K lowerKey(K key);
+
+    /**
+     * Returns the entry associated with the highest key less than or equal to key.
+     *
+     * @param key the key
+     * @return the entry or null
+     */
+     K floorKey(K key);
+
+    /**
+     * Returns the lowest key greater than or equal to key.
+     *
+     * @param key the key
+     * @return the key or null
+     */
+     K ceilingKey(K key);
+
+    /**
+     * Returns the lowest key greater than key.
+     *
+     * @param key the key
+     * @return the key or null
+     */
+     K higherKey(K key);
+
+    /**
+     * Returns a navigable set of the keys in this map.
+     *
+     * @return a navigable key set
+     */
+     NavigableSet<K> navigableKeySet();
+
+}