Remove unnecessary String() constructor invocations
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / BinaryType.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.model.util;
9
10 import com.google.common.base.Optional;
11 import java.util.Collections;
12 import java.util.List;
13 import java.util.Objects;
14 import org.opendaylight.yangtools.yang.common.QName;
15 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
16 import org.opendaylight.yangtools.yang.model.api.Status;
17 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
18 import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
19 import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
20
21 /**
22  * The <code>default</code> implementation of Binary Type Definition interface.
23  *
24  * @see BinaryTypeDefinition
25  * @deprecated Use {@link org.opendaylight.yangtools.yang.model.util.type.BaseTypes#binaryType()} instead
26  */
27 @Deprecated
28 public final class BinaryType implements BinaryTypeDefinition {
29     private static final String DESCRIPTION = "The binary built-in type represents any binary data, i.e., a sequence of octets.";
30     private static final String REFERENCE = "https://tools.ietf.org/html/rfc6020#section-9.8";
31     private static final String UNITS = "";
32
33     private static final QName QNAME = BaseTypes.BINARY_QNAME;
34
35     private static final BinaryType INSTANCE = new BinaryType();
36
37     private static final SchemaPath PATH = SchemaPath.create(Collections.singletonList(QNAME), true);
38     private final List<Byte> bytes = Collections.emptyList();
39     private final List<LengthConstraint> lengthConstraints;
40
41     private BinaryType() {
42         this.lengthConstraints = Collections.singletonList(
43                 BaseConstraints.newLengthConstraint(0, Long.MAX_VALUE, Optional.of(""), Optional.of("")));
44     }
45
46     public static BinaryType getInstance() {
47         return INSTANCE;
48     }
49
50     /*
51      * (non-Javadoc)
52      *
53      * @see
54      * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getBaseType()
55      */
56     @Override
57     public BinaryTypeDefinition getBaseType() {
58         return null;
59     }
60
61     /*
62      * (non-Javadoc)
63      *
64      * @see org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()
65      */
66     @Override
67     public String getUnits() {
68         return UNITS;
69     }
70
71     /*
72      * (non-Javadoc)
73      *
74      * @see
75      * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getDefaultValue
76      * ()
77      */
78     @Override
79     public Object getDefaultValue() {
80         return null;
81     }
82
83     /*
84      * (non-Javadoc)
85      *
86      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getQName()
87      */
88     @Override
89     public QName getQName() {
90         return QNAME;
91     }
92
93     /*
94      * (non-Javadoc)
95      *
96      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getPath()
97      */
98     @Override
99     public SchemaPath getPath() {
100         return PATH;
101     }
102
103     /*
104      * (non-Javadoc)
105      *
106      * @see
107      * org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()
108      */
109     @Override
110     public String getDescription() {
111         return DESCRIPTION;
112     }
113
114     /*
115      * (non-Javadoc)
116      *
117      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()
118      */
119     @Override
120     public String getReference() {
121         return REFERENCE;
122     }
123
124     /*
125      * (non-Javadoc)
126      *
127      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()
128      */
129     @Override
130     public Status getStatus() {
131         return Status.CURRENT;
132     }
133
134     /*
135      * (non-Javadoc)
136      *
137      * @see
138      * org.opendaylight.yangtools.yang.model.base.type.api.BinaryTypeDefinition
139      * #getLengthConstraint ()
140      */
141     @Override
142     public List<LengthConstraint> getLengthConstraints() {
143         return lengthConstraints;
144     }
145
146     @Override
147     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
148         return Collections.emptyList();
149     }
150
151     @Override
152     public int hashCode() {
153         final int prime = 31;
154         int result = 1;
155         result = prime * result + Objects.hashCode(bytes);
156         result = prime * result + Objects.hashCode(lengthConstraints);
157         result = prime * result + QNAME.hashCode();
158         result = prime * result + PATH.hashCode();
159         return result;
160     }
161
162     @Override
163     public boolean equals(final Object obj) {
164         if (this == obj) {
165             return true;
166         }
167         if (obj == null) {
168             return false;
169         }
170         if (getClass() != obj.getClass()) {
171             return false;
172         }
173         BinaryType other = (BinaryType) obj;
174         return Objects.equals(bytes, other.bytes) && Objects.equals(lengthConstraints, other.lengthConstraints);
175     }
176
177     @Override
178     public String toString() {
179         StringBuilder builder = new StringBuilder();
180         builder.append("BinaryType [name=");
181         builder.append(QNAME);
182         builder.append(", description=");
183         builder.append(DESCRIPTION);
184         builder.append(", reference=");
185         builder.append(REFERENCE);
186         builder.append(", bytes=");
187         builder.append(bytes);
188         builder.append(", lengthConstraints=");
189         builder.append(lengthConstraints);
190         builder.append(", units=");
191         builder.append(UNITS);
192         builder.append("]");
193         return builder.toString();
194     }
195 }