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=848fcfe5fc4808bf1bf260a0022dcd98cf3b1c2a;hb=ef6bd770f1366f84fdbc7ab19fa649953b36197b;hp=d0646f467a50416a71bb7d5f5c0c42cdfd343abf;hpb=a35fe9ae149bd4c7089d48665ccc8bff580bce53;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..848fcfe5fc 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,13 +71,26 @@ 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; } + + // caches of resolved IdentityRefs + <#list moduleFields as field> + <#if field.identityRef==true> + private ${field.identityClassType} ${field.identityClassName}; + + @Override public final ${instanceType} getInstance(){ @@ -79,17 +98,41 @@ 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> } + + <#if field.needsDepResolver==true> + if(${field.name} != null) { + <#if field.type?starts_with("java.util.List")> + for(${field.type?substring(field.type?index_of("<") + 1, field.type?index_of(">"))} candidate : ${field.name}) { + candidate.injectDependencyResolver(dependencyResolver); + } + <#else> + ${field.name}.injectDependencyResolver(dependencyResolver); + + } + + + <#if field.identityRef==true> + if(${field.name} != null) { + set${field.attributeName}(${field.name}.resolveIdentity(dependencyResolver, ${field.identityBaseClass}.class)); + } + if(oldInstance!=null && canReuseInstance(oldModule)) { @@ -130,13 +173,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) {