Clean up Rfc8040 14/51614/1
authorRobert Varga <rovarga@cisco.com>
Thu, 9 Feb 2017 09:47:11 +0000 (10:47 +0100)
committerRobert Varga <rovarga@cisco.com>
Thu, 9 Feb 2017 09:47:11 +0000 (10:47 +0100)
- use URI.create() as we know the format is correct
- use SimpleDateFormatUtil
- make sure constants are constant
- QName contants should be interned
- throw ExceptionInInitializerError on constant init failure

Change-Id: Ice3cb7fcff8617217a235d830fd7aa5dec1bd26d
Signed-off-by: Robert Varga <rovarga@cisco.com>
restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/Rfc8040.java

index 9ff4fb127ba2be42f4f46300c0fd1b03a5a26fc9..b558cd332e0682581abe19513e94ae0ca1973fb4 100644 (file)
@@ -8,15 +8,11 @@
 package org.opendaylight.restconf;
 
 import java.net.URI;
-import java.net.URISyntaxException;
 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;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
 
 /**
  * Base Draft for Restconf project
@@ -57,9 +53,6 @@ public final class Rfc8040 {
      *
      */
     public static final class RestconfModule {
-
-        private static final Logger LOG = LoggerFactory.getLogger(RestconfModule.class);
-
         private RestconfModule() {
             throw new UnsupportedOperationException("Util class");
         }
@@ -69,20 +62,20 @@ public final class Rfc8040 {
         public static final String NAMESPACE = "urn:ietf:params:xml:ns:yang:ietf-restconf";
 
         public static final QName IETF_RESTCONF_QNAME = QName.create(Rfc8040.RestconfModule.NAMESPACE,
-                Rfc8040.RestconfModule.REVISION, Rfc8040.RestconfModule.NAME);
+                Rfc8040.RestconfModule.REVISION, Rfc8040.RestconfModule.NAME).intern();
 
-        public static Date DATE = null;
-        public static URI URI_MODULE = null;
+        public static final Date DATE;
 
         static {
             try {
-                DATE = new SimpleDateFormat("yyyy-MM-dd").parse(REVISION);
-                URI_MODULE = new URI(NAMESPACE);
-            } catch (final ParseException | URISyntaxException e) {
-                LOG.error(e.getMessage());
+                DATE = SimpleDateFormatUtil.getRevisionFormat().parse(REVISION);
+            } catch (final ParseException e) {
+                throw new ExceptionInInitializerError(e);
             }
         }
 
+        public static final URI URI_MODULE = URI.create(NAMESPACE);
+
         // RESTCONF
         public static final String RESTCONF_GROUPING_SCHEMA_NODE = "restconf";
         public static final String RESTCONF_CONTAINER_SCHEMA_NODE = "restconf";
@@ -91,10 +84,11 @@ public final class Rfc8040 {
         public static final String LIB_VER_LEAF_SCHEMA_NODE = "yang-library-version";
 
         public static final QName RESTCONF_GROUPING_QNAME =
-                QName.create(IETF_RESTCONF_QNAME, RESTCONF_GROUPING_SCHEMA_NODE);
+                QName.create(IETF_RESTCONF_QNAME, RESTCONF_GROUPING_SCHEMA_NODE).intern();
         public static final QName RESTCONF_CONTAINER_QNAME =
-                QName.create(IETF_RESTCONF_QNAME, RESTCONF_CONTAINER_SCHEMA_NODE);
-        public static final QName LIB_VER_LEAF_QNAME = QName.create(IETF_RESTCONF_QNAME, LIB_VER_LEAF_SCHEMA_NODE);
+                QName.create(IETF_RESTCONF_QNAME, RESTCONF_CONTAINER_SCHEMA_NODE).intern();
+        public static final QName LIB_VER_LEAF_QNAME = QName.create(IETF_RESTCONF_QNAME, LIB_VER_LEAF_SCHEMA_NODE)
+                .intern();
 
         // ERRORS
         public static final String ERRORS_GROUPING_SCHEMA_NODE = "errors";
@@ -103,13 +97,13 @@ public final class Rfc8040 {
 
         public static final QName ERRORS_CONTAINER_QNAME =
                 QName.create(IETF_RESTCONF_QNAME, ERRORS_CONTAINER_SCHEMA_NODE);
-        public static final QName ERROR_LIST_QNAME = QName.create(IETF_RESTCONF_QNAME, ERROR_LIST_SCHEMA_NODE);
-        public static final QName ERROR_TYPE_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-type");
-        public static final QName ERROR_TAG_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-tag");
-        public static final QName ERROR_APP_TAG_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-app-tag");
-        public static final QName ERROR_MESSAGE_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-message");
-        public static final QName ERROR_INFO_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-info");
-        public static final QName ERROR_PATH_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-path");
+        public static final QName ERROR_LIST_QNAME = QName.create(IETF_RESTCONF_QNAME, ERROR_LIST_SCHEMA_NODE).intern();
+        public static final QName ERROR_TYPE_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-type").intern();
+        public static final QName ERROR_TAG_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-tag".intern());
+        public static final QName ERROR_APP_TAG_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-app-tag").intern();
+        public static final QName ERROR_MESSAGE_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-message").intern();
+        public static final QName ERROR_INFO_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-info").intern();
+        public static final QName ERROR_PATH_QNAME = QName.create(IETF_RESTCONF_QNAME, "error-path").intern();
     }
 
     /**
@@ -117,9 +111,6 @@ public final class Rfc8040 {
      *
      */
     public static final class IetfYangLibrary {
-
-        private static final Logger LOG = LoggerFactory.getLogger(IetfYangLibrary.class);
-
         private IetfYangLibrary() {
             throw new UnsupportedOperationException("Util class");
         }
@@ -128,64 +119,65 @@ public final class Rfc8040 {
         public static final String NAMESPACE = "urn:ietf:params:xml:ns:yang:ietf-yang-library";
         public static final String REVISION = "2016-06-21";
 
-        public static Date DATE = null;
-        public static URI URI_MODULE = null;
+        public static final Date DATE;
 
         static {
             try {
-                DATE = new SimpleDateFormat("yyyy-MM-dd").parse(REVISION);
-                URI_MODULE = new URI(NAMESPACE);
-            } catch (final ParseException | URISyntaxException e) {
-                LOG.error(e.getMessage());
+                DATE = SimpleDateFormatUtil.getRevisionFormat().parse(REVISION);
+            } catch (final ParseException e) {
+                throw new ExceptionInInitializerError(e);
             }
         }
 
-        public static final QNameModule MODULE_QNAME = QNameModule.create(URI_MODULE, DATE);
+        public static final URI URI_MODULE = URI.create(NAMESPACE);
+
+        public static final QNameModule MODULE_QNAME = QNameModule.create(URI_MODULE, DATE).intern();
 
         public static final String MODULE_SET_ID_LEAF = "module-set-id";
-        public static final QName MODULE_SET_ID_LEAF_QNAME = QName.create(MODULE_QNAME, MODULE_SET_ID_LEAF);
+        public static final QName MODULE_SET_ID_LEAF_QNAME = QName.create(MODULE_QNAME, MODULE_SET_ID_LEAF).intern();
 
         public static final String GROUPING_MODULE_LIST = "module-list";
-        public static final QName GROUPING_MODULE_LIST_QNAME = QName.create(MODULE_QNAME, GROUPING_MODULE_LIST);
+        public static final QName GROUPING_MODULE_LIST_QNAME = QName.create(MODULE_QNAME, GROUPING_MODULE_LIST)
+                .intern();
 
         public static final String MODULES_STATE_CONT = "modules-state";
-        public static final QName MODUELS_STATE_CONT_QNAME = QName.create(MODULE_QNAME, MODULES_STATE_CONT);
+        public static final QName MODUELS_STATE_CONT_QNAME = QName.create(MODULE_QNAME, MODULES_STATE_CONT).intern();
 
         public static final String MODULE_LIST = "module";
-        public static final QName MODULE_QNAME_LIST = QName.create(MODULE_QNAME, MODULE_LIST);
+        public static final QName MODULE_QNAME_LIST = QName.create(MODULE_QNAME, MODULE_LIST).intern();
 
         public static final String SPECIFIC_MODULE_NAME_LEAF = "name";
         public static final QName SPECIFIC_MODULE_NAME_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_NAME_LEAF);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_NAME_LEAF).intern();
 
         public static final String SPECIFIC_MODULE_REVISION_LEAF = "revision";
         public static final QName SPECIFIC_MODULE_REVISION_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_REVISION_LEAF);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_REVISION_LEAF).intern();
 
         public static final String BASE_URI_OF_SCHEMA = "/modules/";
         public static final String SPECIFIC_MODULE_SCHEMA_LEAF = "schema";
         public static final QName SPECIFIC_MODULE_SCHEMA_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_SCHEMA_LEAF);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_SCHEMA_LEAF).intern();
 
         public static final String SPECIFIC_MODULE_NAMESPACE_LEAF = "namespace";
         public static final QName SPECIFIC_MODULE_NAMESPACE_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_NAMESPACE_LEAF);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_NAMESPACE_LEAF).intern();
 
         public static final String SPECIFIC_MODULE_FEATURE_LEAF_LIST = "feature";
         public static final QName SPECIFIC_MODULE_FEATURE_LEAF_LIST_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_FEATURE_LEAF_LIST);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_FEATURE_LEAF_LIST).intern();
 
         public static final String SPECIFIC_MODULE_DEVIATION_LIST = "deviation";
         public static final QName SPECIFIC_MODULE_DEVIATION_LIST_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_DEVIATION_LIST);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_DEVIATION_LIST).intern();
 
         public static final String SPECIFIC_MODULE_CONFORMANCE_LEAF = "conformance-type";
         public static final QName SPECIFIC_MODULE_CONFORMANCE_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_CONFORMANCE_LEAF);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_CONFORMANCE_LEAF).intern();
 
         public static final String SPECIFIC_MODULE_SUBMODULE_LIST = "submodule";
         public static final QName SPECIFIC_MODULE_SUBMODULE_LIST_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_SUBMODULE_LIST);
+                QName.create(MODULE_QNAME, SPECIFIC_MODULE_SUBMODULE_LIST).intern();
     }
 
     /**
@@ -194,8 +186,6 @@ public final class Rfc8040 {
      */
     public static final class MonitoringModule {
 
-        private static final Logger LOG = LoggerFactory.getLogger(MonitoringModule.class);
-
         private MonitoringModule() {
             throw new UnsupportedOperationException("Util class");
         }
@@ -207,57 +197,62 @@ public final class Rfc8040 {
                 "ietf-restconf-monitoring:restconf-state/streams/stream=";
         public static final String PATH_TO_STREAMS = "ietf-restconf-monitoring:restconf-state/streams";
 
-        public static Date DATE = null;
-        public static URI URI_MODULE = null;
+        public static final Date DATE;
 
         static {
             try {
-                DATE = new SimpleDateFormat("yyyy-MM-dd").parse(REVISION);
-                URI_MODULE = new URI(NAMESPACE);
-            } catch (final ParseException | URISyntaxException e) {
-                LOG.error(e.getMessage());
+                DATE = SimpleDateFormatUtil.getRevisionFormat().parse(REVISION);
+            } catch (final ParseException e) {
+                throw new ExceptionInInitializerError(e);
             }
         }
 
-        public static final QNameModule MODULE_QNAME = QNameModule.create(URI_MODULE, DATE);
+        public static final URI URI_MODULE = URI.create(NAMESPACE);
+
+        public static final QNameModule MODULE_QNAME = QNameModule.create(URI_MODULE, DATE).intern();
 
         public static final String CONT_RESTCONF_STATE_NAME = "restconf-state";
-        public static final QName CONT_RESTCONF_STATE_QNAME = QName.create(MODULE_QNAME, CONT_RESTCONF_STATE_NAME);
+        public static final QName CONT_RESTCONF_STATE_QNAME = QName.create(MODULE_QNAME, CONT_RESTCONF_STATE_NAME)
+                .intern();
 
         public static final String CONT_CAPABILITIES_NAME = "capabilities";
-        public static final QName CONT_CAPABILITES_QNAME = QName.create(MODULE_QNAME, CONT_CAPABILITIES_NAME);
+        public static final QName CONT_CAPABILITES_QNAME = QName.create(MODULE_QNAME, CONT_CAPABILITIES_NAME).intern();
 
         public static final String LEAF_LIST_CAPABILITY_NAME = "capability";
-        public static final QName LEAF_LIST_CAPABILITY_QNAME = QName.create(MODULE_QNAME, LEAF_LIST_CAPABILITY_NAME);
+        public static final QName LEAF_LIST_CAPABILITY_QNAME = QName.create(MODULE_QNAME, LEAF_LIST_CAPABILITY_NAME)
+                .intern();
 
         public static final String CONT_STREAMS_NAME = "streams";
-        public static final QName CONT_STREAMS_QNAME = QName.create(MODULE_QNAME, CONT_STREAMS_NAME);
+        public static final QName CONT_STREAMS_QNAME = QName.create(MODULE_QNAME, CONT_STREAMS_NAME).intern();
 
         public static final String LIST_STREAM_NAME = "stream";
-        public static final QName LIST_STREAM_QNAME = QName.create(MODULE_QNAME, LIST_STREAM_NAME);
+        public static final QName LIST_STREAM_QNAME = QName.create(MODULE_QNAME, LIST_STREAM_NAME).intern();
 
         public static final String LEAF_NAME_STREAM_NAME = "name";
-        public static final QName LEAF_NAME_STREAM_QNAME = QName.create(MODULE_QNAME, LEAF_NAME_STREAM_NAME);
+        public static final QName LEAF_NAME_STREAM_QNAME = QName.create(MODULE_QNAME, LEAF_NAME_STREAM_NAME).intern();
 
         public static final String LEAF_DESCR_STREAM_NAME = "description";
-        public static final QName LEAF_DESCR_STREAM_QNAME = QName.create(MODULE_QNAME, LEAF_DESCR_STREAM_NAME);
+        public static final QName LEAF_DESCR_STREAM_QNAME = QName.create(MODULE_QNAME, LEAF_DESCR_STREAM_NAME).intern();
 
         public static final String LEAF_REPLAY_SUPP_STREAM_NAME = "replay-support";
         public static final QName LEAF_REPLAY_SUPP_STREAM_QNAME =
-                QName.create(MODULE_QNAME, LEAF_REPLAY_SUPP_STREAM_NAME);
+                QName.create(MODULE_QNAME, LEAF_REPLAY_SUPP_STREAM_NAME).intern();
 
         public static final String LEAF_START_TIME_STREAM_NAME = "replay-log-creation-time";
         public static final QName LEAF_START_TIME_STREAM_QNAME =
-                QName.create(MODULE_QNAME, LEAF_START_TIME_STREAM_NAME);
+                QName.create(MODULE_QNAME, LEAF_START_TIME_STREAM_NAME).intern();
 
         public static final String LIST_ACCESS_STREAM_NAME = "access";
-        public static final QName LIST_ACCESS_STREAM_QNAME = QName.create(MODULE_QNAME, LIST_ACCESS_STREAM_NAME);
+        public static final QName LIST_ACCESS_STREAM_QNAME = QName.create(MODULE_QNAME, LIST_ACCESS_STREAM_NAME)
+                .intern();
 
         public static final String LEAF_ENCODING_ACCESS_NAME = "encoding";
-        public static final QName LEAF_ENCODING_ACCESS_QNAME = QName.create(MODULE_QNAME, LEAF_ENCODING_ACCESS_NAME);
+        public static final QName LEAF_ENCODING_ACCESS_QNAME = QName.create(MODULE_QNAME, LEAF_ENCODING_ACCESS_NAME)
+                .intern();
 
         public static final String LEAF_LOCATION_ACCESS_NAME = "location";
-        public static final QName LEAF_LOCATION_ACCESS_QNAME = QName.create(MODULE_QNAME, LEAF_LOCATION_ACCESS_NAME);
+        public static final QName LEAF_LOCATION_ACCESS_QNAME = QName.create(MODULE_QNAME, LEAF_LOCATION_ACCESS_NAME)
+                .intern();
 
         /**
          * Constants for capabilities