Remove casting from processStringType method 53/107253/3
authorIvan Hrasko <ivan.hrasko@pantheon.tech>
Fri, 4 Aug 2023 10:45:15 +0000 (12:45 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Fri, 4 Aug 2023 13:18:30 +0000 (13:18 +0000)
As a consequence of NETCONF-1112 we can remove casting from
processStringType method and use simplified logic to find
constraints of very original base type.

Change-Id: Ie490ed26bdaff2d0db8090f508fd59858d60cbc5
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/impl/DefinitionGenerator.java

index 7869f36091b47043a151532b638bb2b0960a3f3f..adce427cf6c9411822bbda91aaf178f2de6f7faa 100644 (file)
@@ -70,7 +70,6 @@ import org.opendaylight.yangtools.yang.model.api.type.Int32TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Int64TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Int8TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.RangeRestrictedTypeDefinition;
@@ -751,20 +750,18 @@ public class DefinitionGenerator {
         return STRING_TYPE;
     }
 
-    private static String processStringType(final TypeDefinition<?> stringType, final ObjectNode property,
+    private static String processStringType(final StringTypeDefinition stringType, final ObjectNode property,
             final String nodeName) {
-        StringTypeDefinition type = (StringTypeDefinition) stringType;
-        Optional<LengthConstraint> lengthConstraints = ((StringTypeDefinition) stringType).getLengthConstraint();
-        while (lengthConstraints.isEmpty() && type.getBaseType() != null) {
+        var type = stringType;
+        while (type.getLengthConstraint().isEmpty() && type.getBaseType() != null) {
             type = type.getBaseType();
-            lengthConstraints = type.getLengthConstraint();
         }
 
-        if (lengthConstraints.isPresent()) {
-            final Range<Integer> range = lengthConstraints.orElseThrow().getAllowedRanges().span();
+        type.getLengthConstraint().ifPresent(constraint -> {
+            final Range<Integer> range = constraint.getAllowedRanges().span();
             putIfNonNull(property, MIN_LENGTH_KEY, range.lowerEndpoint());
             putIfNonNull(property, MAX_LENGTH_KEY, range.upperEndpoint());
-        }
+        });
 
         if (type.getPatternConstraints().iterator().hasNext()) {
             final PatternConstraint pattern = type.getPatternConstraints().iterator().next();