X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fmapping%2Fattributes%2Fmapping%2FObjectMapper.java;h=2608c57e000316e1cd2df3aa80d38a34b5c72890;hp=506d7d61c347016ef76a6601500ed773762dafb0;hb=43644d24aa56d5b9055d0bcffc3e31112ca1e5fe;hpb=79eba117e59f10c8bff34d0dd6bbb67b8ccc3e10 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/mapping/ObjectMapper.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/mapping/ObjectMapper.java index 506d7d61c3..2608c57e00 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/mapping/ObjectMapper.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/mapping/ObjectMapper.java @@ -10,31 +10,27 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attri import com.google.common.base.Preconditions; import com.google.common.collect.Maps; +import java.util.Map; +import java.util.Map.Entry; +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenType; +import javax.management.openmbean.SimpleType; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; import org.opendaylight.controller.config.yangjmxgenerator.attribute.DependencyAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.ListAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.ListDependenciesAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.TOAttribute; import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.AttributeIfcSwitchStatement; -import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ServiceRegistryWrapper; - -import javax.management.openmbean.ArrayType; -import javax.management.openmbean.CompositeType; -import javax.management.openmbean.OpenType; -import javax.management.openmbean.SimpleType; -import java.util.Map; -import java.util.Map.Entry; +import org.opendaylight.controller.netconf.confignetconfconnector.osgi.EnumResolver; public class ObjectMapper extends AttributeIfcSwitchStatement>> { - private final ServiceRegistryWrapper dependencyTracker; - - public ObjectMapper(ServiceRegistryWrapper depTracker) { - this.dependencyTracker = depTracker; - } + private EnumResolver enumResolver; public Map>> prepareMapping( - Map configDefinition) { + Map configDefinition, EnumResolver enumResolver) { + this.enumResolver = Preconditions.checkNotNull(enumResolver); Map>> strategies = Maps.newHashMap(); for (Entry attrEntry : configDefinition.entrySet()) { @@ -47,8 +43,9 @@ public class ObjectMapper extends AttributeIfcSwitchStatement> prepareStrategy(AttributeIfc attributeIfc) { if(attributeIfc instanceof DependencyAttribute) { - serviceNameOfDepAttr = ((DependencyAttribute)attributeIfc).getDependency().getSie().getQName().getLocalName(); namespaceOfDepAttr = ((DependencyAttribute)attributeIfc).getDependency().getSie().getQName().getNamespace().toString(); + } else if (attributeIfc instanceof ListDependenciesAttribute) { + namespaceOfDepAttr = ((ListDependenciesAttribute)attributeIfc).getDependency().getSie().getQName().getNamespace().toString(); } return switchAttribute(attributeIfc); @@ -67,6 +64,11 @@ public class ObjectMapper extends AttributeIfcSwitchStatement> caseJavaEnumAttribute(final OpenType openType) { + return new EnumAttributeMappingStrategy(((CompositeType) openType), enumResolver); + } + @Override protected AttributeMappingStrategy> caseJavaArrayAttribute(ArrayType openType) { @@ -106,24 +108,22 @@ public class ObjectMapper extends AttributeIfcSwitchStatement> caseDependencyAttribute( SimpleType openType) { - return new ObjectNameAttributeMappingStrategy(openType, dependencyTracker, - serviceNameOfDepAttr, namespaceOfDepAttr); + return new ObjectNameAttributeMappingStrategy(openType, namespaceOfDepAttr); } @Override protected AttributeMappingStrategy> caseTOAttribute(CompositeType openType) { Map>> innerStrategies = Maps.newHashMap(); - Preconditions.checkState(lastAttribute instanceof TOAttribute); - TOAttribute lastTO = (TOAttribute) lastAttribute; + Preconditions.checkState(getLastAttribute() instanceof TOAttribute); + TOAttribute lastTO = (TOAttribute) getLastAttribute(); - for (Entry innerAttrEntry : ((TOAttribute)lastAttribute).getJmxPropertiesToTypesMap().entrySet()) { + for (Entry innerAttrEntry : ((TOAttribute)getLastAttribute()).getJmxPropertiesToTypesMap().entrySet()) { innerStrategies.put(innerAttrEntry.getKey(), prepareStrategy(innerAttrEntry.getValue())); } @@ -133,14 +133,14 @@ public class ObjectMapper extends AttributeIfcSwitchStatement> caseListAttribute(ArrayType openType) { - Preconditions.checkState(lastAttribute instanceof ListAttribute); + Preconditions.checkState(getLastAttribute() instanceof ListAttribute); return new ArrayAttributeMappingStrategy(openType, - prepareStrategy(((ListAttribute) lastAttribute).getInnerAttribute())); + prepareStrategy(((ListAttribute) getLastAttribute()).getInnerAttribute())); } @Override protected AttributeMappingStrategy> caseListDependeciesAttribute(ArrayType openType) { - Preconditions.checkState(lastAttribute instanceof ListDependenciesAttribute); + Preconditions.checkState(getLastAttribute() instanceof ListDependenciesAttribute); return new ArrayAttributeMappingStrategy(openType, caseDependencyAttribute(SimpleType.OBJECTNAME)); }