Bug 4662: Introduce a SemanticVersion concept - pre-linkage phase
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / spi / source / QNameToStatementDefinitionMap.java
index 091360e04c6debc8e3f9807dd7ad3d4e05c137ef..aaefd8aeb87c11ffc33e714e3c41f3cae18f8c58 100644 (file)
@@ -7,20 +7,22 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.source;
 
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
 public class QNameToStatementDefinitionMap implements QNameToStatementDefinition {
 
     private Map<QName, StatementDefinition> qNameToStmtDefMap = new HashMap<>();
+    private Map<QName, StatementDefinition> qNameWithoutRevisionToStmtDefMap = new HashMap<>();
 
     public void put(QName qName, StatementDefinition stDef) {
         qNameToStmtDefMap.put(qName, stDef);
+        qNameWithoutRevisionToStmtDefMap.put(QName.create(qName.getNamespace(), null, qName.getLocalName()), stDef);
     }
 
     @Nullable
@@ -28,4 +30,10 @@ public class QNameToStatementDefinitionMap implements QNameToStatementDefinition
     public StatementDefinition get(@Nonnull QName identifier) {
         return qNameToStmtDefMap.get(identifier);
     }
+
+    @Nullable
+    @Override
+    public StatementDefinition getByNamespaceAndLocalName(URI namespace, @Nonnull String localName) {
+        return qNameWithoutRevisionToStmtDefMap.get(QName.create(namespace, null, localName));
+    }
 }