Cache config QNameModules
[controller.git] / opendaylight / config / yang-jmx-generator / src / main / java / org / opendaylight / controller / config / yangjmxgenerator / ConfigConstants.java
index ae064001956b9217fcfc1e950309ff514d17ddf6..e585eb204861163a9434b330485cf687800bc1de 100644 (file)
@@ -7,17 +7,22 @@
  */
 package org.opendaylight.controller.config.yangjmxgenerator;
 
-import java.net.URI;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+
+public final class ConfigConstants {
 
-public class ConfigConstants {
+    private ConfigConstants() {
+    }
 
-    public static final String CONFIG_NAMESPACE = "urn:opendaylight:params:xml:ns:yang:controller:config";
+    private static final QName DUMMY_CONFIG_QNAME = QName.create(
+        "urn:opendaylight:params:xml:ns:yang:controller:config", "2013-04-05", "dummy");
+    private static final QName DUMM_RPC_QNAME = QName.create(
+        "urn:ietf:params:xml:ns:yang:rpc-context", "2013-06-17", "dummy");
+    private static final QNameModule CONFIG_MOD = QNameModule.cachedReference(DUMMY_CONFIG_QNAME.getModule());
+    private static final QNameModule RPC_MOD = QNameModule.cachedReference(DUMM_RPC_QNAME.getModule());
 
+    public static final String CONFIG_NAMESPACE = CONFIG_MOD.getNamespace().toString();
     public static final String CONFIG_MODULE = "config";
     public static final String CONFIG_THREADS_MODULE = "config-threads";
     public static final String IETF_INET_TYPES = "ietf-inet-types";
@@ -33,33 +38,11 @@ public class ConfigConstants {
     public static final QName RPC_CONTEXT_REF_GROUPING_LEAF = createRpcXQName("context-instance");
     public static final QName RPC_CONTEXT_INSTANCE_EXTENSION_QNAME = createRpcXQName("rpc-context-instance");
 
-    public static QName createConfigQName(String localName) {
-        return createQName(CONFIG_NAMESPACE, "2013-04-05", localName);
+    public static QName createConfigQName(final String localName) {
+        return QName.create(CONFIG_MOD, localName);
     }
 
-    public static QName createRpcXQName(String localName) {
-        return createQName("urn:ietf:params:xml:ns:yang:rpc-context",
-                "2013-06-17", localName);
+    public static QName createRpcXQName(final String localName) {
+        return QName.create(RPC_MOD, localName);
     }
-
-    /**
-     *
-     * @param uri
-     * @param revisionDate
-     *            in format yyyy-MM-dd
-     * @param localName
-     * @return
-     */
-    private static QName createQName(String uri, String revisionDate,
-            String localName) {
-        SimpleDateFormat revisionFormat = new SimpleDateFormat("yyyy-MM-dd");
-        Date revision;
-        try {
-            revision = revisionFormat.parse(revisionDate);
-        } catch (ParseException e) {
-            throw new RuntimeException(e);
-        }
-        return new QName(URI.create(uri), revision, localName);
-    }
-
 }