Teach YANG parser to retain DeclarationReference
[yangtools.git] / yang / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / DerivedNamespaceBehaviour.java
index 5a318402f081b5d1636ab6c88862740c266983a6..b65895154cd4d03802dd33b899a34ad36e5ca5f1 100644 (file)
@@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 
 import static java.util.Objects.requireNonNull;
 
+import com.google.common.base.MoreObjects.ToStringHelper;
 import java.util.Map;
-import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
 
 /**
  * An {@link NamespaceBehaviour} which derives keys from a different namespace.
@@ -21,8 +21,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
  * @param <L> Original key type
  * @param <O> Original namespace type
  */
-public abstract class DerivedNamespaceBehaviour<K, V, L, N extends IdentifierNamespace<K, V>,
-       O extends IdentifierNamespace<L, ?>> extends NamespaceBehaviour<K, V, N> {
+public abstract class DerivedNamespaceBehaviour<K, V, L, N extends ParserNamespace<K, V>,
+       O extends ParserNamespace<L, ?>> extends NamespaceBehaviour<K, V, N> {
 
     private final Class<O> derivedFrom;
 
@@ -49,4 +49,9 @@ public abstract class DerivedNamespaceBehaviour<K, V, L, N extends IdentifierNam
     }
 
     public abstract L getSignificantKey(K key);
+
+    @Override
+    protected ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return helper.add("derivedFrom", derivedFrom.getName());
+    }
 }