Bug 2366 - new parser API - implementation of declared statements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / NamespaceBehaviour.java
index cdff074d675638e0b9eaef3f3d236a865e166850..129110d8537491c41716a7db9f59d40bcdcb7042 100644 (file)
@@ -46,6 +46,8 @@ public abstract class NamespaceBehaviour<K,V, N extends IdentifierNamespace<K, V
 
         @Nullable  <K, V, N extends IdentifierNamespace<K, V>> V getFromLocalStorage(Class<N> type, K key);
 
+        //<K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAllFromLocalStorage(Class<N> type);
+
         @Nullable  <K, V, N extends IdentifierNamespace<K, V>> void addToLocalStorage(Class<N> type, K key, V value);
 
     }
@@ -100,6 +102,9 @@ public abstract class NamespaceBehaviour<K,V, N extends IdentifierNamespace<K, V
     }
 
     public abstract V getFrom(NamespaceStorageNode storage, K key);
+
+    //public abstract Map<K, V> getAllFrom(NamespaceStorageNode storage);
+
     public abstract void addTo(NamespaceStorageNode storage,K key,V value);
 
     @Override
@@ -111,6 +116,10 @@ public abstract class NamespaceBehaviour<K,V, N extends IdentifierNamespace<K, V
         return storage.getFromLocalStorage(getIdentifier(), key);
     }
 
+//    protected final Map<K, V> getAllFromLocalStorage(NamespaceStorageNode storage) {
+//        return storage.getAllFromLocalStorage(getIdentifier());
+//    }
+
     protected final void addToStorage(NamespaceStorageNode storage,K key,V value) {
         storage.addToLocalStorage(getIdentifier(),key,value);
     }
@@ -127,12 +136,21 @@ public abstract class NamespaceBehaviour<K,V, N extends IdentifierNamespace<K, V
         @Override
         public V getFrom(final NamespaceStorageNode storage, final K key) {
             NamespaceStorageNode current = storage;
-            while(current.getParentNamespaceStorage() != null) {
+            while(current.getStorageNodeType() != storageType) {
                 current = current.getParentNamespaceStorage();
             }
             return getFromLocalStorage(current,key);
         }
 
+//        @Override
+//        public Map<K, V> getAllFrom(final NamespaceStorageNode storage) {
+//            NamespaceStorageNode current = storage;
+//            while(current.getStorageNodeType() != storageType) {
+//                current = current.getParentNamespaceStorage();
+//            }
+//            return getAllFromLocalStorage(current);
+//        }
+
         @Override
         public void addTo(NamespaceBehaviour.NamespaceStorageNode storage, K key, V value) {
             NamespaceStorageNode current = storage;
@@ -163,6 +181,19 @@ public abstract class NamespaceBehaviour<K,V, N extends IdentifierNamespace<K, V
             return null;
         }
 
+//        @Override
+//        public Map<K, V> getAllFrom(final NamespaceStorageNode storage) {
+//            NamespaceStorageNode current = storage;
+//            while(current != null) {
+//                final Map<K, V> val = getAllFromLocalStorage(current);
+//                if(val != null) {
+//                    return val;
+//                }
+//                current = current.getParentNamespaceStorage();
+//            }
+//            return null;
+//        }
+
         @Override
         public void addTo(NamespaceStorageNode storage,K key, V value) {
             addToStorage(storage, key, value);