X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Futil%2FBitsType.java;h=588e6d04c060f994555c031a6549588c5311253c;hb=ded9e3c33f7138c7391caf5afb377dce76986f8f;hp=cacfeb305ded07c22c5582878263877fdf9af428;hpb=c5b6f823ad2fa88bb1d76751a97a9cdf3e310e99;p=yangtools.git diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BitsType.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BitsType.java index cacfeb305d..588e6d04c0 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BitsType.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BitsType.java @@ -7,9 +7,11 @@ */ package org.opendaylight.yangtools.yang.model.util; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import java.util.Collections; import java.util.List; - +import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; @@ -18,61 +20,52 @@ import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition; /** * The default implementation of Bits Type Definition interface. - * + * * @see BitsTypeDefinition + * @deprecated Use {@link org.opendaylight.yangtools.yang.model.util.type.BaseTypes#bitsTypeBuilder(SchemaPath)} instead */ +@Deprecated public final class BitsType implements BitsTypeDefinition { - private final QName name = BaseTypes.constructQName("bits"); - private final SchemaPath path; - private final String description = "The bits built-in type represents a bit set. " + private static final QName NAME = BaseTypes.BITS_QNAME; + private static final String DESCRIPTION = "The bits built-in type represents a bit set. " + "That is, a bits value is a set of flags identified by small integer position " + "numbers starting at 0. Each bit number has an assigned name."; private static final String REFERENCE = "https://tools.ietf.org/html/rfc6020#section-9.7"; - private final BitsTypeDefinition baseType; - private final List bits; private static final String UNITS = ""; - - /** - * Default constructor.
- * Instantiates Bits type as empty bits list. - * - * @param path - */ - public BitsType(final SchemaPath path) { - super(); - this.bits = Collections.emptyList(); - this.path = path; - this.baseType = this; - } + private final SchemaPath path; + private final List bits; /** * Constructor with explicit definition of bits assigned to BitsType. - * + * * @param path * @param bits */ - public BitsType(final SchemaPath path, final List bits) { + private BitsType(final SchemaPath path, final List bits) { super(); - this.bits = Collections.unmodifiableList(bits); - this.path = path; - this.baseType = this; + this.bits = ImmutableList.copyOf(bits); + this.path = Preconditions.checkNotNull(path, "path must not be null"); + } + + public static BitsType create(final SchemaPath path, final List bits) { + return new BitsType(path,bits); } /* * (non-Javadoc) - * + * * @see * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getBaseType() */ @Override public BitsTypeDefinition getBaseType() { - return baseType; + return null; } /* * (non-Javadoc) - * + * * @see org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits() */ @Override @@ -82,29 +75,30 @@ public final class BitsType implements BitsTypeDefinition { /* * (non-Javadoc) - * + * * @see * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getDefaultValue * () */ @Override public Object getDefaultValue() { - return bits; + // FIXME: Return real bits. + return null; } /* * (non-Javadoc) - * + * * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getQName() */ @Override public QName getQName() { - return name; + return NAME; } /* * (non-Javadoc) - * + * * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getPath() */ @Override @@ -114,18 +108,18 @@ public final class BitsType implements BitsTypeDefinition { /* * (non-Javadoc) - * + * * @see * org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription() */ @Override public String getDescription() { - return description; + return DESCRIPTION; } /* * (non-Javadoc) - * + * * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference() */ @Override @@ -135,7 +129,7 @@ public final class BitsType implements BitsTypeDefinition { /* * (non-Javadoc) - * + * * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus() */ @Override @@ -157,15 +151,14 @@ public final class BitsType implements BitsTypeDefinition { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((bits == null) ? 0 : bits.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((path == null) ? 0 : path.hashCode()); + result = prime * result + Objects.hashCode(bits); + result = prime * result + NAME.hashCode(); + result = prime * result + path.hashCode(); return result; } @Override - public boolean equals(Object obj) { + public boolean equals(final Object obj) { if (this == obj) { return true; } @@ -176,46 +169,18 @@ public final class BitsType implements BitsTypeDefinition { return false; } BitsType other = (BitsType) obj; - if (bits == null) { - if (other.bits != null) { - return false; - } - } else if (!bits.equals(other.bits)) { - return false; - } - if (description == null) { - if (other.description != null) { - return false; - } - } else if (!description.equals(other.description)) { - return false; - } - if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - if (path == null) { - if (other.path != null) { - return false; - } - } else if (!path.equals(other.path)) { - return false; - } - return true; + return Objects.equals(bits, other.bits) && Objects.equals(path, other.path); } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("BitsType [name="); - builder.append(name); + builder.append(NAME); builder.append(", path="); builder.append(path); builder.append(", description="); - builder.append(description); + builder.append(DESCRIPTION); builder.append(", reference="); builder.append(REFERENCE); builder.append(", bits=");