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=7192ac661f8a6a362c84fec6f52c66ac6b5747ac;hb=0563e3f9bbfc5c8fdcb910046738534126901e9a;hp=d0646f467a50416a71bb7d5f5c0c42cdfd343abf;hpb=d0b8e3341f823b5fe63ed6c2bbef3a7027222dd3;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 d0646f467a..7192ac661f 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,8 +52,14 @@ 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(); } @@ -65,10 +71,17 @@ package ${packageName}; // 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; } + @@ -79,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> } @@ -130,13 +149,19 @@ package ${packageName}; 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)) { + <#if field.dependent==true && field.listOfDependencies == false> + if (${field.name}Dependency != other.${field.name}Dependency) { // reference to dependency must be same + return false; + } + <#elseif field.listOfDependencies> + if (${field.name}Dependency.equals(other.${field.name}Dependency) == false) { return false; } + for (int idx = 0; idx < ${field.name}Dependency.size(); idx++) { + if (${field.name}Dependency.get(idx) != other.${field.name}Dependency.get(idx)) { + return false; + } + } <#else> if (${field.name} == null) { if (other.${field.name} != null) {