From ddfe79d304fc1338700ad3b839047f3abef7b6de Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Oct 2020 16:28:46 +0200 Subject: [PATCH] Rehost BaseTypes.isInt8() and friends These methods are incoming from yangtools, as their semantics is not quite well-defined in yang-model world. They are only used by TypeProvider, so it should host them. JIRA: YANGTOOLS-1099 Change-Id: I1b0a0e1d88728aaa1c538730a924575adb7b165e Signed-off-by: Robert Varga --- .../yang/types/AbstractTypeProvider.java | 101 ++++++++++++++++-- 1 file changed, 93 insertions(+), 8 deletions(-) diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java index 8e53b58a02..5f64d5dc54 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java @@ -1425,25 +1425,25 @@ public abstract class AbstractTypeProvider implements TypeProvider { throw new UnsupportedOperationException("Cannot get default construction for identityref type"); } else if (base instanceof InstanceIdentifierTypeDefinition) { throw new UnsupportedOperationException("Cannot get default construction for instance-identifier type"); - } else if (BaseTypes.isInt8(base)) { + } else if (isInt8(base)) { result = typeToValueOfDef(Byte.class, defaultValue); - } else if (BaseTypes.isInt16(base)) { + } else if (isInt16(base)) { result = typeToValueOfDef(Short.class, defaultValue); - } else if (BaseTypes.isInt32(base)) { + } else if (isInt32(base)) { result = typeToValueOfDef(Integer.class, defaultValue); - } else if (BaseTypes.isInt64(base)) { + } else if (isInt64(base)) { result = typeToValueOfDef(Long.class, defaultValue); } else if (base instanceof LeafrefTypeDefinition) { result = leafrefToDef(node, (LeafrefTypeDefinition) base, defaultValue); } else if (base instanceof StringTypeDefinition) { result = "\"" + defaultValue + "\""; - } else if (BaseTypes.isUint8(base)) { + } else if (isUint8(base)) { result = typeToValueOfDef(Uint8.class, defaultValue); - } else if (BaseTypes.isUint16(base)) { + } else if (isUint16(base)) { result = typeToValueOfDef(Uint16.class, defaultValue); - } else if (BaseTypes.isUint32(base)) { + } else if (isUint32(base)) { result = typeToValueOfDef(Uint32.class, defaultValue); - } else if (BaseTypes.isUint64(base)) { + } else if (isUint64(base)) { result = typeToValueOfDef(Uint64.class, defaultValue); } else if (base instanceof UnionTypeDefinition) { result = unionToDef(node); @@ -1466,6 +1466,91 @@ public abstract class AbstractTypeProvider implements TypeProvider { return sb.toString(); } + + /** + * Check if a particular type definition represents the built-in int8 type. + * + * @param type Type definition + * @return True if the definition is the built-in int8 type. + */ + private static boolean isInt8(final TypeDefinition type) { + return BaseTypes.int8Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type definition represents the built-in int16 type. + * + * @param type Type definition + * @return True if the definition is the built-in int16 type. + */ + private static boolean isInt16(final TypeDefinition type) { + return BaseTypes.int16Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type definition represents the built-in int32 type. + * + * @param type Type definition + * @return True if the definition is the built-in int32 type. + */ + private static boolean isInt32(final TypeDefinition type) { + return BaseTypes.int32Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type definition represents the built-in int64 type. + * + * @param type Type definition + * @return True if the definition is the built-in int64 type. + */ + private static boolean isInt64(final TypeDefinition type) { + return BaseTypes.int64Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type is the base type for uint8. + * + * @param type The type to check + * @return If the type corresponds to the base uint8 type. + * @throws NullPointerException if type is null + */ + private static boolean isUint8(final TypeDefinition type) { + return BaseTypes.uint8Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type is the base type for uint16. + * + * @param type The type to check + * @return If the type corresponds to the base uint16 type. + * @throws NullPointerException if type is null + */ + private static boolean isUint16(final TypeDefinition type) { + return BaseTypes.uint16Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type is the base type for uint32. + * + * @param type The type to check + * @return If the type corresponds to the base uint32 type. + * @throws NullPointerException if type is null + */ + private static boolean isUint32(final TypeDefinition type) { + return BaseTypes.uint32Type().getPath().equals(type.getPath()); + } + + /** + * Check if a particular type is the base type for uint64. + * + * @param type The type to check + * @return If the type corresponds to the base uint64 type. + * @throws NullPointerException if type is null + */ + private static boolean isUint64(final TypeDefinition type) { + return BaseTypes.uint64Type().getPath().equals(type.getPath()); + } + private static String typeToDef(final Class clazz, final String defaultValue) { return "new " + clazz.getName() + "(\"" + defaultValue + "\")"; } -- 2.36.6