Fix noRev map efficiency
[yangtools.git] / yang / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / source / QNameToStatementDefinitionMap.java
index c722c5d0459af29770ce817ab52e924a281854ea..5ddb7d872d168002a79001543b15cb51dd130892 100644 (file)
@@ -12,8 +12,6 @@ import static java.util.Objects.requireNonNull;
 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;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
@@ -57,26 +55,17 @@ public class QNameToStatementDefinitionMap implements QNameToStatementDefinition
     }
 
     private void putNoRev(final QName qname, final StatementSupport<?, ?, ?> support) {
-        final QName norev;
-        if (qname.getRevision() != null) {
-            norev = QName.create(qname.getNamespace(), qname.getLocalName()).intern();
-        } else {
-            norev = qname;
-        }
-        noRevQNameToSupport.put(norev, support);
+        final QName norev = qname.withoutRevision();
+        noRevQNameToSupport.put(norev != qname ? norev.intern() : qname, support);
     }
 
-    @Nullable
     @Override
-    public StatementSupport<?, ?, ?> get(@Nonnull final QName identifier) {
+    public StatementSupport<?, ?, ?> get(final QName identifier) {
         return qnameToSupport.get(identifier);
     }
 
-    @Nullable
     @Override
-    public StatementDefinition getByNamespaceAndLocalName(@Nonnull final URI namespace,
-            @Nonnull final String localName) {
+    public StatementDefinition getByNamespaceAndLocalName(final URI namespace, final String localName) {
         return noRevQNameToSupport.get(QName.create(namespace, localName));
     }
-
 }