X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fconfig%2Fyang-jmx-generator-plugin%2Fsrc%2Fmain%2Fresources%2FfreeMarker%2Fmodule_abs_template_new.ftl;h=848fcfe5fc4808bf1bf260a0022dcd98cf3b1c2a;hb=26cb66156fe0e1f533d0e6a7dd39040c7423999f;hp=f7197d1582ca70193cb21591922f8c77529a31ed;hpb=0fb6159a2bf4a0b361c0404b08910c47f6f277bf;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 f7197d1582..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 @@ -85,6 +85,12 @@ package ${packageName}; + // caches of resolved IdentityRefs + <#list moduleFields as field> + <#if field.identityRef==true> + private ${field.identityClassType} ${field.identityClassName}; + + @Override public final ${instanceType} getInstance(){ @@ -109,6 +115,24 @@ package ${packageName}; } + + <#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)) { @@ -149,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) {