Bug 6236: Introduce "mdsal.skip.verbose" property, for build speed
[mdsal.git] / binding / mdsal-binding-generator-impl / src / main / java / org / opendaylight / yangtools / sal / binding / generator / impl / YangTemplate.xtend
index 3902ab82a98c8b1f774e13b5a957966c246f7e8c..c97d4488903e5f6fac3876b13139fc8ed5e6d69c 100644 (file)
@@ -42,13 +42,15 @@ import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPai
 
 class YangTemplate {
 
-    // FIXME: this is not thread-safe and seems to be unused!
-    private static var Module module = null
+    private static val String SKIP_PROPERTY_NAME = "mdsal.skip.verbose"
+
+    private static val SKIP = Boolean.getBoolean(SKIP_PROPERTY_NAME);
 
     def static String generateYangSnipet(SchemaNode schemaNode) {
         if (schemaNode == null)
             return ''
-
+        if (SKIP)
+            return '''(Empty due to «SKIP_PROPERTY_NAME» property = true)'''
         '''
             «IF schemaNode instanceof DataSchemaNode»
             «writeDataSchemaNode(schemaNode)»
@@ -82,11 +84,12 @@ class YangTemplate {
             «ENDIF»
         '''
     }
-    
+
     def static String generateYangSnipet(Set<? extends SchemaNode> nodes) {
         if (nodes.nullOrEmpty)
             return ''
-        
+        if (SKIP)
+            return '''(Empty due to «SKIP_PROPERTY_NAME» property = true)'''
         '''
             «FOR node : nodes»
                 «IF node instanceof NotificationDefinition»
@@ -99,12 +102,10 @@ class YangTemplate {
     }
 
     def private static writeEnumPair(EnumPair pair) {
-        var boolean hasEnumPairValue = pair.value != null
         '''
-            enum «pair.name»«IF !hasEnumPairValue»;«ELSE»{
+            enum «pair.name» {
                 value «pair.value»;
             }
-            «ENDIF»
         '''
     }
 
@@ -132,7 +133,8 @@ class YangTemplate {
     }
 
     def static String generateYangSnipet(Module module) {
-
+        if (SKIP)
+            return '''(Empty due to «SKIP_PROPERTY_NAME» property = true)'''
         '''
             module «module.name» {
                 yang-version «module.yangVersion»;
@@ -384,7 +386,7 @@ class YangTemplate {
         '''
             identity «identity.QName.localName» {
                 «IF identity.baseIdentity != null»
-                base "(«writeIdentityNs(identity.baseIdentity)»)«identity.baseIdentity»";
+                base "()«identity.baseIdentity»";
                 «ENDIF»
                 «IF !identity.description.nullOrEmpty»
                 description
@@ -401,17 +403,6 @@ class YangTemplate {
         '''
     }
 
-    def private static writeIdentityNs(IdentitySchemaNode identity) {
-        if(module == null)
-            return ''
-
-        val identityNs = identity.QName.namespace
-
-        if(!module.namespace.equals(identityNs))
-            return identityNs + ":"
-        return ''
-    }
-
     def private static writeFeatures(Set<FeatureDefinition> features) {
         '''
             «FOR feature : features»