X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator-plugin%2Fsrc%2Fmain%2Fresources%2FfreeMarker%2Fmodule_abs_template_new.ftl;h=f7197d1582ca70193cb21591922f8c77529a31ed;hb=1257b6b217ae7fb2fca640b5991eac2a0266a93f;hp=7351822db9d8096f46dbce588872c34a6c744448;hpb=0641db636be750bf98e85c702c4948c7c835b9b6;p=controller.git diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl index 7351822db9..f7197d1582 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl @@ -52,18 +52,36 @@ package ${packageName}; public void validate(){ <#list moduleFields as field> <#if field.dependent==true && field.dependency.mandatory==true> + <#if field.type?starts_with("java.util.List")> + for(javax.management.ObjectName dep : ${field.name}) { + dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, dep, ${field.name}JmxAttribute); + } + <#else> dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, ${field.name}, ${field.name}JmxAttribute); + + customValidation(); + } + + protected void customValidation(){ + } // caches of resolved dependencies <#list moduleFields as field> <#if field.dependent==true> + <#if field.type?starts_with("java.util.List")> + private java.util.List<${field.dependency.sie.exportedOsgiClassName}> ${field.name}Dependency = new java.util.ArrayList<${field.dependency.sie.exportedOsgiClassName}>(); + protected final java.util.List<${field.dependency.sie.exportedOsgiClassName}> get${field.attributeName}Dependency(){ + return ${field.name}Dependency; + } + <#else> private ${field.dependency.sie.exportedOsgiClassName} ${field.name}Dependency; protected final ${field.dependency.sie.exportedOsgiClassName} get${field.attributeName}Dependency(){ return ${field.name}Dependency; } + @@ -74,12 +92,18 @@ package ${packageName}; <#list moduleFields as field> <#if field.dependent==true> - <#if field.dependency.mandatory==false> if(${field.name}!=null) { - ${field.name}Dependency = dependencyResolver.resolveInstance(${field.dependency.sie.exportedOsgiClassName}.class, ${field.name}, ${field.name}JmxAttribute); + <#if field.type?starts_with("java.util.List")> + ${field.name}Dependency = new java.util.ArrayList<${field.dependency.sie.exportedOsgiClassName}>(); + for(javax.management.ObjectName dep : ${field.name}) { + ${field.name}Dependency.add(dependencyResolver.resolveInstance(${field.dependency.sie.exportedOsgiClassName}.class, dep, ${field.name}JmxAttribute)); + } + <#else> + ${field.name}Dependency = dependencyResolver.resolveInstance(${field.dependency.sie.exportedOsgiClassName}.class, ${field.name}, ${field.name}JmxAttribute); + <#if field.dependency.mandatory==false> } @@ -110,7 +134,7 @@ package ${packageName}; public boolean canReuseInstance(${typeDeclaration.name} oldModule){ // allow reusing of old instance if no parameters was changed - return equals(oldModule); + return isSame(oldModule); } public ${instanceType} reuseInstance(${instanceType} oldInstance){ @@ -120,34 +144,50 @@ package ${packageName}; public abstract ${instanceType} createInstance(); - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ${typeDeclaration.name} other = (${typeDeclaration.name}) obj; - - + public boolean isSame(${typeDeclaration.name} other) { + if (other == null) { + throw new IllegalArgumentException("Parameter 'other' is null"); + } <#list moduleFields as field> <#if field.dependent==true> if (${field.name}Dependency == null) { if (other.${field.name}Dependency != null) return false; - } else if (!${field.name}Dependency.equals(other.${field.name}Dependency)) + } else if (!${field.name}Dependency.equals(other.${field.name}Dependency)) { return false; + } <#else> if (${field.name} == null) { - if (other.${field.name} != null) + if (other.${field.name} != null) { return false; - } else if (!${field.name}.equals(other.${field.name})) + } + } else if + <#if field.array == false> + (${field.name}.equals(other.${field.name}) == false) + <#else> + (java.util.Arrays.equals(${field.name},other.${field.name}) == false) + + { return false; + } return true; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + ${typeDeclaration.name} that = (${typeDeclaration.name}) o; + + return identifier.equals(that.identifier); + } + + @Override + public int hashCode() { + return identifier.hashCode(); + } }