Reuse integer QNames 79/29379/2
authorRobert Varga <rovarga@cisco.com>
Fri, 6 Nov 2015 10:44:22 +0000 (11:44 +0100)
committerRobert Varga <rovarga@cisco.com>
Mon, 9 Nov 2015 15:27:24 +0000 (16:27 +0100)
Use singleton constants instead of instantiating QNames over and over
again.

Change-Id: I1aa94a8c9bfd808d7928589e7f54d8b5224232d0
Signed-off-by: Robert Varga <rovarga@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Int16EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Int32EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Int64EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/Int8EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/IntegerEffectiveImplBase.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UInt16EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UInt32EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UInt64EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UInt8EffectiveStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/type/UnsignedIntegerEffectiveImplBase.java

index 86ff1afa870a2bc4aa4a9b70e3a322ccd40bcc6e..9ddfae041944f0effe131f2783b5e1dae9a8ced3 100644 (file)
@@ -100,9 +100,8 @@ public class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeh
                     final StatementContextBase<?,?,?> extension = (StatementContextBase<?, ?, ?>) currentContext
                             .getAllFromNamespace(ExtensionNamespace.class).get(key);
                     if (extension != null) {
-                        final QName qName = QName.create(((QName) ((SubstatementContext<?, ?, ?>) extension).getStatementArgument())
-                                .getModule().getNamespace(), ((QName) ((SubstatementContext<?, ?, ?>) extension).
-                                getStatementArgument()).getModule().getRevision(), extension.getIdentifier().getArgument());
+                        final QName arg = (QName) ((SubstatementContext<?, ?, ?>) extension).getStatementArgument();
+                        final QName qName = QName.create(arg, extension.getIdentifier().getArgument());
 
                         def = new StatementDefinitionContext<>(new UnknownStatementImpl.Definition
                                 (getNewStatementDefinition(qName)));
index 08bfea3cd7567de7d01c45f3d346f8e9b9f45252..de6993540d387a650d96a26635d230f8561e06bb 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -25,7 +26,7 @@ public class Int16EffectiveStatementImpl extends IntegerEffectiveImplBase {
 
     public Int16EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.INT16_QNAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index 2bdc77853042b38323812b9e6af1f98bf32270dd..0919b8b700331d4f83887468ffd23497151e63e4 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -25,7 +26,7 @@ public class Int32EffectiveStatementImpl extends IntegerEffectiveImplBase {
 
     public Int32EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.INT32_QNAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index 5b94bcb032bb850b615dc7209c1483b2e25ce30b..68d6fd68eaddb8b20fb709851034c5a116ef493f 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -25,7 +26,7 @@ public class Int64EffectiveStatementImpl extends IntegerEffectiveImplBase {
 
     public Int64EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.INT64_QNAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index e3d3f620b88f44e8152926c3497e6ae91a01ec24..1daa1db8e74fd20ff61d13ec4058424e6b763fc2 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -25,7 +26,7 @@ public class Int8EffectiveStatementImpl extends IntegerEffectiveImplBase {
 
     public Int8EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.INT8_QNAME, MIN_RANGE, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index 872315af09ed5cf3a278b202529e753bf1662a09..5e567f5a7988dd913119ba373d1651ccee48e331 100644 (file)
@@ -9,11 +9,11 @@
 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -36,11 +36,11 @@ abstract class IntegerEffectiveImplBase extends
     private final List<RangeConstraint> rangeStatements;
 
     protected IntegerEffectiveImplBase(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx,
-            final String localName, final Number minRange, final Number maxRange, final String description) {
+            final QName qname, final Number minRange, final Number maxRange, final String description) {
 
         super(ctx);
 
-        this.qName = QName.create(YangConstants.RFC6020_YANG_MODULE, localName);
+        this.qName = Preconditions.checkNotNull(qname);
         path = ctx.getSchemaPath().get();
 
         final String rangeDescription = "Integer values between " + minRange + " and " + maxRange + ", inclusively.";
index ba3cd16bc7fcda29def056cbd74587ca7a27d329..b9d45da8cd2a76a85589cde8ed1984e38d56d305 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -24,7 +25,7 @@ public class UInt16EffectiveStatementImpl extends UnsignedIntegerEffectiveImplBa
 
     public UInt16EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.UINT16_QNAME, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index ef1c69b078c1d63eb5ad7c6e76942fbb1ffdffa4..640873a8146becb123df8573d14ff1481daf3483 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -24,7 +25,7 @@ public class UInt32EffectiveStatementImpl extends UnsignedIntegerEffectiveImplBa
 
     public UInt32EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.UINT32_QNAME, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index 4a07e45ba881950a7af591ef885f52cc1cf07b28..715f3970839b8b6a4ed002fc6add4ae6ddb4c56d 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 import java.math.BigInteger;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -25,7 +26,7 @@ public class UInt64EffectiveStatementImpl extends UnsignedIntegerEffectiveImplBa
 
     public UInt64EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.UINT64_QNAME, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index 53197fbb4b7ac880058831f969e677b17fe070e6..ed61e5171e44ad198b6e72b775aef59e4b4d99c5 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
 
@@ -24,7 +25,7 @@ public class UInt8EffectiveStatementImpl extends UnsignedIntegerEffectiveImplBas
 
     public UInt8EffectiveStatementImpl(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx) {
 
-        super(ctx, LOCAL_NAME, MAX_RANGE, DESCRIPTION);
+        super(ctx, BaseTypes.UINT8_QNAME, MAX_RANGE, DESCRIPTION);
     }
 
     @Override
index 8cbb1d5a9190e7d2eb9ee55768ec2d5ea34d7e24..f66e72fe5b8ce2efa1e1e8cbefb51f33a3879928 100644 (file)
@@ -9,11 +9,11 @@
 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -37,11 +37,11 @@ abstract class UnsignedIntegerEffectiveImplBase extends
     private final List<RangeConstraint> rangeStatements;
 
     protected UnsignedIntegerEffectiveImplBase(final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx,
-            final String localName, final Number maxRange, final String description) {
+            final QName qname, final Number maxRange, final String description) {
 
         super(ctx);
 
-        this.qName = QName.create(YangConstants.RFC6020_YANG_MODULE, localName);
+        this.qName = Preconditions.checkNotNull(qname);
         path = ctx.getSchemaPath().get();
 
         final String rangeDescription = "Integer values between " + MIN_RANGE + " and " + maxRange + ", inclusively.";