Cache YangModuleInfo type name
[mdsal.git] / binding / mdsal-binding-generator-impl / src / main / java / org / opendaylight / mdsal / binding / generator / impl / ModuleContext.java
index 617189b9ce9c8af3b694ad5add045c5a57050bd5..9b323e512b619eed454cc7fe0d2be53d728e0908 100644 (file)
@@ -75,6 +75,7 @@ public final class ModuleContext implements Mutable {
     private final Map<JavaTypeName, SchemaNode> nameMapping = new HashMap<>();
 
     private GeneratedTypeBuilder moduleNode;
+    private JavaTypeName moduleInfoType;
     private String modulePackageName;
 
     ModuleContext(final Module module) {
@@ -85,7 +86,7 @@ public final class ModuleContext implements Mutable {
         return module;
     }
 
-    String modulePackageName() {
+    @NonNull String modulePackageName() {
         String ret = modulePackageName;
         if (ret == null) {
             modulePackageName = ret = BindingMapping.getRootPackageName(module.getQNameModule());
@@ -93,6 +94,14 @@ public final class ModuleContext implements Mutable {
         return ret;
     }
 
+    @NonNull JavaTypeName moduleInfoType() {
+        JavaTypeName ret = moduleInfoType;
+        if (ret == null) {
+            moduleInfoType = ret = JavaTypeName.create(modulePackageName(), BindingMapping.MODULE_INFO_CLASS_NAME);
+        }
+        return ret;
+    }
+
     List<Type> getGeneratedTypes() {
         List<Type> result = new ArrayList<>();