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%2Ffromxml%2FObjectXmlReader.java;h=61ea76bbfeb9504f456132ba7cfebd67bcc6e508;hp=e2ea404e2158f40c0d56ada00994e8fcd371da82;hb=87837c5398976e1f44418e9f161efea9d5fa4e7c;hpb=237237663265bfda9069c66151371ce7697aed59 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java index e2ea404e21..61ea76bbfe 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java @@ -11,23 +11,30 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attri import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; +import org.opendaylight.controller.config.yangjmxgenerator.attribute.JavaAttribute; 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.operations.editconfig.EditConfig; import javax.management.openmbean.ArrayType; import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenType; import javax.management.openmbean.SimpleType; +import java.util.Date; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; public class ObjectXmlReader extends AttributeIfcSwitchStatement { private String key; + private Map> identityMap; - public Map prepareReading(Map yangToAttrConfig) { + public Map prepareReading(Map yangToAttrConfig, Map> identityMap) { Map strategies = Maps.newHashMap(); + this.identityMap = identityMap; for (Entry attributeEntry : yangToAttrConfig.entrySet()) { AttributeReadingStrategy strat = prepareReadingStrategy(attributeEntry.getKey(), attributeEntry.getValue()); @@ -41,33 +48,53 @@ public class ObjectXmlReader extends AttributeIfcSwitchStatement openType) { + return new SimpleBinaryAttributeReadingStrategy(getLastAttribute().getNullableDefault()); + } + + @Override + protected AttributeReadingStrategy caseJavaUnionAttribute(OpenType openType) { + String mappingKey = JavaAttribute.DESCRIPTION_OF_VALUE_ATTRIBUTE_FOR_UNION; + return new SimpleUnionAttributeReadingStrategy(getLastAttribute().getNullableDefault(), mappingKey); + } + @Override public AttributeReadingStrategy caseJavaSimpleAttribute(SimpleType openType) { - return new SimpleAttributeReadingStrategy(lastAttribute.getNullableDefault()); + return new SimpleAttributeReadingStrategy(getLastAttribute().getNullableDefault()); } @Override public AttributeReadingStrategy caseJavaArrayAttribute(ArrayType openType) { - SimpleAttributeReadingStrategy innerStrategy = new SimpleAttributeReadingStrategy(lastAttribute.getNullableDefault()); - return new ArrayAttributeReadingStrategy(lastAttribute.getNullableDefault(), innerStrategy); + SimpleAttributeReadingStrategy innerStrategy = new SimpleAttributeReadingStrategy(getLastAttribute().getNullableDefault()); + return new ArrayAttributeReadingStrategy(getLastAttribute().getNullableDefault(), innerStrategy); } @Override public AttributeReadingStrategy caseJavaCompositeAttribute(CompositeType openType) { Preconditions.checkState(openType.keySet().size() == 1, "Unexpected number of elements for open type %s, should be 1", openType); String mappingKey = openType.keySet().iterator().next(); - return new SimpleCompositeAttributeReadingStrategy(lastAttribute.getNullableDefault(), mappingKey); + return new SimpleCompositeAttributeReadingStrategy(getLastAttribute().getNullableDefault(), mappingKey); + } + + @Override + protected AttributeReadingStrategy caseJavaIdentityRefAttribute(OpenType openType) { + Preconditions.checkState(openType instanceof CompositeType); + Set keys = ((CompositeType) openType).keySet(); + Preconditions.checkState(keys.size() == 1, "Unexpected number of elements for open type %s, should be 1", openType); + String mappingKey = keys.iterator().next(); + return new SimpleIdentityRefAttributeReadingStrategy(getLastAttribute().getNullableDefault(), mappingKey, identityMap); } @Override protected AttributeReadingStrategy caseDependencyAttribute(SimpleType openType) { - return new ObjectNameAttributeReadingStrategy(lastAttribute.getNullableDefault()); + return new ObjectNameAttributeReadingStrategy(getLastAttribute().getNullableDefault()); } @Override protected AttributeReadingStrategy caseTOAttribute(CompositeType openType) { - Preconditions.checkState(lastAttribute instanceof TOAttribute); - Map inner = ((TOAttribute)lastAttribute).getYangPropertiesToTypesMap(); + Preconditions.checkState(getLastAttribute() instanceof TOAttribute); + Map inner = ((TOAttribute)getLastAttribute()).getYangPropertiesToTypesMap(); Map innerStrategies = Maps.newHashMap(); @@ -77,21 +104,21 @@ public class ObjectXmlReader extends AttributeIfcSwitchStatement openType) { - Preconditions.checkState(lastAttribute instanceof ListAttribute); - AttributeReadingStrategy innerStrategy = prepareReadingStrategy(key, ((ListAttribute) lastAttribute).getInnerAttribute()); - return new ArrayAttributeReadingStrategy(lastAttribute.getNullableDefault(), innerStrategy); + Preconditions.checkState(getLastAttribute() instanceof ListAttribute); + AttributeReadingStrategy innerStrategy = prepareReadingStrategy(key, ((ListAttribute) getLastAttribute()).getInnerAttribute()); + return new ArrayAttributeReadingStrategy(getLastAttribute().getNullableDefault(), innerStrategy); } @Override protected AttributeReadingStrategy caseListDependeciesAttribute(ArrayType openType) { - Preconditions.checkState(lastAttribute instanceof ListDependenciesAttribute); + Preconditions.checkState(getLastAttribute() instanceof ListDependenciesAttribute); AttributeReadingStrategy innerStrategy = caseDependencyAttribute(SimpleType.OBJECTNAME); - return new ArrayAttributeReadingStrategy(lastAttribute.getNullableDefault(), innerStrategy); + return new ArrayAttributeReadingStrategy(getLastAttribute().getNullableDefault(), innerStrategy); } }