From 67448dba937667946047411ac5a742e99cd817f5 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 30 May 2022 17:36:06 +0200 Subject: [PATCH] Modernize SchemaRootCodecContext Use switch expressions and instanceof patterns to improve expressiveness. Change-Id: I08f8806dca5cc1936b2d39ff7c3e2b7b5efc0e60 Signed-off-by: Robert Varga --- .../codec/impl/SchemaRootCodecContext.java | 42 +++++++------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaRootCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaRootCodecContext.java index bc1b2d4b8d..c6221f53a9 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaRootCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaRootCodecContext.java @@ -13,7 +13,6 @@ import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; import com.google.common.base.Throwables; -import com.google.common.base.Verify; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -178,17 +177,11 @@ final class SchemaRootCodecContext extends DataContainerCo final var rpcName = key.firstNodeIdentifier(); final var context = factory().getRuntimeContext(); - final Class container; - switch (key.lastNodeIdentifier().getLocalName()) { - case "input": - container = context.getRpcInput(rpcName); - break; - case "output": - container = context.getRpcOutput(rpcName); - break; - default: - throw new IllegalArgumentException("Unhandled path " + key); - } + final Class container = switch (key.lastNodeIdentifier().getLocalName()) { + case "input" -> context.getRpcInput(rpcName); + case "output" -> context.getRpcOutput(rpcName); + default -> throw new IllegalArgumentException("Unhandled path " + key); + }; return getRpc(container); } @@ -276,8 +269,8 @@ final class SchemaRootCodecContext extends DataContainerCo DataContainerCodecContext createDataTreeChildContext(final Class key) { final RuntimeType childSchema = childNonNull(getType().bindingChild(JavaTypeName.create(key)), key, "%s is not top-level item.", key); - if (childSchema instanceof CompositeRuntimeType && childSchema instanceof DataRuntimeType) { - return DataContainerCodecPrototype.from(key, (CompositeRuntimeType) childSchema, factory()).get(); + if (childSchema instanceof CompositeRuntimeType composite && childSchema instanceof DataRuntimeType) { + return DataContainerCodecPrototype.from(key, composite, factory()).get(); } throw IncorrectNestingException.create("%s is not a valid data tree child of %s", key, this); } @@ -322,15 +315,12 @@ final class SchemaRootCodecContext extends DataContainerCo private static @Nullable ContainerLike getRpcDataSchema(final @NonNull RpcDefinition rpc, final @NonNull QName qname) { requireNonNull(rpc, "Rpc Schema must not be null"); - switch (requireNonNull(qname, "QName must not be null").getLocalName()) { - case "input": - return rpc.getInput(); - case "output": - return rpc.getOutput(); - default: - throw new IllegalArgumentException("Supplied qname " + qname - + " does not represent rpc input or output."); - } + return switch (requireNonNull(qname, "QName must not be null").getLocalName()) { + case "input" -> rpc.getInput(); + case "output" -> rpc.getOutput(); + default -> throw new IllegalArgumentException( + "Supplied qname " + qname + " does not represent rpc input or output."); + }; } ChoiceNodeCodecContext createChoiceDataContext(final Class caseType) { @@ -341,7 +331,7 @@ final class SchemaRootCodecContext extends DataContainerCo final DataContainerCodecContext choice = DataContainerCodecPrototype.from(choiceClass, (ChoiceRuntimeType)schema, factory()).get(); - Verify.verify(choice instanceof ChoiceNodeCodecContext); + verify(choice instanceof ChoiceNodeCodecContext); return (ChoiceNodeCodecContext) choice; } @@ -380,14 +370,12 @@ final class SchemaRootCodecContext extends DataContainerCo private static Class findCaseChoice(final Class caseClass) { for (Type type : caseClass.getGenericInterfaces()) { - if (type instanceof Class) { - final Class typeClass = (Class) type; + if (type instanceof Class typeClass) { if (ChoiceIn.class.isAssignableFrom(typeClass)) { return typeClass.asSubclass(ChoiceIn.class); } } } - return null; } -- 2.36.6