X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDatastoreContextIntrospector.java;h=f22a98a3cc2d8e990540b76d77e03e830ce6ca2e;hb=HEAD;hp=0ee005a708c8d4c660ee3df2980b08045bb964d6;hpb=805e9821a737d305f7f591ae51055e475e26fcdc;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java index 0ee005a708..ac50ff30a2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Map.Entry; -import java.util.Optional; import java.util.Set; import java.util.function.Function; import javax.management.ConstructorParameters; @@ -31,8 +30,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.WordUtils; import org.checkerframework.checker.lock.qual.GuardedBy; import org.opendaylight.controller.cluster.datastore.DatastoreContext.Builder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev140612.DataStoreProperties; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev140612.DataStorePropertiesContainer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev231229.DataStoreProperties; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev231229.DataStorePropertiesContainer; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint64; @@ -84,7 +83,7 @@ public class DatastoreContextIntrospector { private static void introspectPrimitiveTypes() { final Set> primitives = ImmutableSet.>builder().addAll( Primitives.allWrapperTypes()).add(String.class).build(); - for (final Class primitive: primitives) { + for (final Class primitive : primitives) { try { processPropertyType(primitive); } catch (final NoSuchMethodException e) { @@ -175,7 +174,7 @@ public class DatastoreContextIntrospector { // This must be a yang-defined type. We need to find the constructor that takes a // primitive as the only argument. This will be used to construct instances to perform // validation (eg range checking). The yang-generated types have a couple single-argument - // constructors but the one we want has the bean ConstructorProperties annotation. + // constructors but the one we want has the ConstructorParameters annotation. for (final Constructor ctor: propertyType.getConstructors()) { final ConstructorParameters ctorParAnnotation = ctor.getAnnotation(ConstructorParameters.class); if (ctor.getParameterCount() == 1 && ctorParAnnotation != null) { @@ -382,9 +381,8 @@ public class DatastoreContextIntrospector { if (propertyType.isEnum()) { try { final Method enumConstructor = propertyType.getDeclaredMethod("forName", String.class); - final Object optional = enumConstructor.invoke(null, from.toString().toLowerCase(Locale.ROOT)); - if (optional instanceof Optional) { - return ((Optional)optional).orElseThrow(); + if (enumConstructor.getReturnType().equals(propertyType)) { + return enumConstructor.invoke(null, from.toString().toLowerCase(Locale.ROOT)); } } catch (NoSuchMethodException e) { LOG.error("Error constructing value ({}) for enum {}", from, propertyType);