Fix license header violations in yang-parser-impl
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / ModuleBuilder.java
index 120ebad9575f78081406eaa581fc3b203931042b..52454a01991980e09dde1622ee78aef58957d8ab 100644 (file)
@@ -1,9 +1,11 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
+
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
 import com.google.common.base.Charsets;
@@ -60,7 +62,7 @@ import org.opendaylight.yangtools.yang.parser.util.YangParseException;
  * otherwise result may not be valid.
  */
 public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder implements DocumentedNodeBuilder {
-
+    private static final QNameModule EMPTY_QNAME_MODULE = QNameModule.cachedReference(QNameModule.create(null, null));
     private static final String GROUPING_STR = "Grouping";
     private static final String TYPEDEF_STR = "typedef";
     private ModuleImpl instance;
@@ -68,7 +70,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im
     private final String sourcePath;
     private static final SchemaPath SCHEMA_PATH = SchemaPath.create(Collections.<QName> emptyList(), true);
     private String prefix;
-    private QNameModule qnameModule = QNameModule.create(null, null);
+    private QNameModule qnameModule = EMPTY_QNAME_MODULE;
 
     private final boolean submodule;
     private String belongsTo;
@@ -346,7 +348,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im
     }
 
     public void setNamespace(final URI namespace) {
-        this.qnameModule = QNameModule.create(namespace, qnameModule.getRevision());
+        this.qnameModule = QNameModule.cachedReference(QNameModule.create(namespace, qnameModule.getRevision()));
     }
 
     public String getPrefix() {
@@ -408,7 +410,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im
     }
 
     public void setRevision(final Date revision) {
-        this.qnameModule = QNameModule.create(qnameModule.getNamespace(), revision);
+        this.qnameModule = QNameModule.cachedReference(QNameModule.create(qnameModule.getNamespace(), revision));
     }
 
     public void setPrefix(final String prefix) {
@@ -430,7 +432,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im
     public void addModuleImport(final String moduleName, final Date revision, final String prefix) {
         checkPrefix(prefix);
         checkNotSealed();
-        final ModuleImport moduleImport = createModuleImport(moduleName, revision, prefix);
+        final ModuleImport moduleImport = new ModuleImportImpl(moduleName, revision, prefix);
         imports.put(prefix, moduleImport);
     }
 
@@ -1049,10 +1051,6 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im
         }
     }
 
-    private ModuleImport createModuleImport(final String moduleName, final Date revision, final String prefix) {
-        return new ModuleImportImpl(moduleName, revision, prefix);
-    }
-
     private void raiseYangParserException(final String cantAddType, final String type, final String name,
             final int currentLine, final int duplicateLine) {