X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Fapi%2Ftype%2FStringTypeDefinition.java;h=f4bbffa909ec49c5176657135d70778c8d0bcb15;hb=19efe56f8f20f5692a100e765a581fbc8f0b4aca;hp=b8fcb0b4e4b330274236dde93322f3602c7d09a8;hpb=fe5a0790b82b95332813017eb93492b6b2cbb822;p=yangtools.git diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/StringTypeDefinition.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/StringTypeDefinition.java index b8fcb0b4e4..f4bbffa909 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/StringTypeDefinition.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/StringTypeDefinition.java @@ -8,31 +8,40 @@ package org.opendaylight.yangtools.yang.model.api.type; import java.util.List; - -import org.opendaylight.yangtools.yang.model.api.TypeDefinition; +import java.util.Objects; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; /** - * - * Contains method for getting data from the string YANG built-in - * type. + * Contains method for getting data from the string YANG built-in type. */ -public interface StringTypeDefinition extends TypeDefinition { - - /** - * Returns length constraint specified in the string. - * - * @return list of length constraint which are specified in the - * lenght substatement of the type - * statement - */ - List getLengthConstraints(); - +public interface StringTypeDefinition extends LengthRestrictedTypeDefinition { /** * Returns patterns specified in the string. - * - * @return list of pattern constraints which are specified in the - * pattern substatement of the type + * + * @return list of pattern constraints which are specified in the {@code pattern} substatement of the {@code type} * statement */ - List getPatternConstraints(); + @NonNull List getPatternConstraints(); + + static int hashCode(final @NonNull StringTypeDefinition type) { + return Objects.hash(type.getPath(), type.getUnknownSchemaNodes(), type.getBaseType(), + type.getUnits().orElse(null), type.getDefaultValue().orElse(null), type.getLengthConstraint().orElse(null), + type.getPatternConstraints()); + } + + static boolean equals(final @NonNull StringTypeDefinition type, final @Nullable Object obj) { + if (type == obj) { + return true; + } + + final StringTypeDefinition other = TypeDefinitions.castIfEquals(StringTypeDefinition.class, type, obj); + return other != null && type.getLengthConstraint().equals(other.getLengthConstraint()) + && type.getPatternConstraints().equals(other.getPatternConstraints()); + } + + static String toString(final @NonNull StringTypeDefinition type) { + return TypeDefinitions.toStringHelper(type).add("length", type.getLengthConstraint().orElse(null)) + .add("patterns", type.getPatternConstraints()).toString(); + } }