BUG-865: mark yang-model-util types as deprecated
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / StringType.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.concepts.Immutable;
15 import org.opendaylight.yangtools.yang.common.QName;
16 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
17 import org.opendaylight.yangtools.yang.model.api.Status;
18 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
19 import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
20 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
21 import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
22
23 /**
24  * The <code>default</code> implementation of String Type Definition interface.
25  *
26  * @see StringTypeDefinition
27  * @deprecated Use {@link org.opendaylight.yangtools.yang.model.util.type.BaseTypes#stringType()} instead
28  */
29 @Deprecated
30 public final class StringType implements StringTypeDefinition, Immutable {
31     private static final QName NAME = BaseTypes.STRING_QNAME;
32     private static final SchemaPath PATH = SchemaPath.create(true, NAME);
33     private static final String DEFAULT_VALUE = null;
34     private static final String DESCRIPTION = "";
35     private static final String REFERENCE = "";
36     private final List<LengthConstraint> lengthStatements;
37     private final List<PatternConstraint> patterns;
38     private static final String UNITS = "";
39
40     private static final StringType INSTANCE = new StringType();
41
42     /**
43      * Default Constructor.
44      */
45     private StringType() {
46         lengthStatements = Collections.singletonList(BaseConstraints.newLengthConstraint(0, Integer.MAX_VALUE, Optional.of(""), Optional.of("")));
47         patterns = Collections.emptyList();
48     }
49
50     public static StringType getInstance() {
51         return INSTANCE;
52     }
53
54     /*
55      * (non-Javadoc)
56      *
57      * @see
58      * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getBaseType()
59      */
60     @Override
61     public StringTypeDefinition getBaseType() {
62         return null;
63     }
64
65     /*
66      * (non-Javadoc)
67      *
68      * @see org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()
69      */
70     @Override
71     public String getUnits() {
72         return UNITS;
73     }
74
75     /*
76      * (non-Javadoc)
77      *
78      * @see
79      * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getDefaultValue
80      * ()
81      */
82     @Override
83     public Object getDefaultValue() {
84         return DEFAULT_VALUE;
85     }
86
87     /*
88      * (non-Javadoc)
89      *
90      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getQName()
91      */
92     @Override
93     public QName getQName() {
94         return NAME;
95     }
96
97     /*
98      * (non-Javadoc)
99      *
100      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getPath()
101      */
102     @Override
103     public SchemaPath getPath() {
104         return PATH;
105     }
106
107     /*
108      * (non-Javadoc)
109      *
110      * @see
111      * org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()
112      */
113     @Override
114     public String getDescription() {
115         return DESCRIPTION;
116     }
117
118     /*
119      * (non-Javadoc)
120      *
121      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()
122      */
123     @Override
124     public String getReference() {
125         return REFERENCE;
126     }
127
128     /*
129      * (non-Javadoc)
130      *
131      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()
132      */
133     @Override
134     public Status getStatus() {
135         return Status.CURRENT;
136     }
137
138     /*
139      * (non-Javadoc)
140      *
141      * @see
142      * com.csico.yang.model.base.type.api.StringTypeDefinition#getLengthStatements
143      * ()
144      */
145     @Override
146     public List<LengthConstraint> getLengthConstraints() {
147         return lengthStatements;
148     }
149
150     /*
151      * (non-Javadoc)
152      *
153      * @see
154      * com.csico.yang.model.base.type.api.StringTypeDefinition#getPatterns()
155      */
156     @Override
157     public List<PatternConstraint> getPatternConstraints() {
158         return patterns;
159     }
160
161     @Override
162     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
163         return Collections.emptyList();
164     }
165
166     @Override
167     public int hashCode() {
168         final int prime = 31;
169         int result = 1;
170         result = prime * result + Objects.hashCode(lengthStatements);
171         result = prime * result + NAME.hashCode();
172         result = prime * result + PATH.hashCode();
173         result = prime * result + Objects.hashCode(patterns);
174         return result;
175     }
176
177     @Override
178     public boolean equals(final Object obj) {
179         if (this == obj) {
180             return true;
181         }
182         if (obj == null) {
183             return false;
184         }
185         if (getClass() != obj.getClass()) {
186             return false;
187         }
188         StringType other = (StringType) obj;
189         return Objects.equals(lengthStatements, other.lengthStatements) && Objects.equals(patterns, other.patterns);
190     }
191
192     @Override
193     public String toString() {
194         StringBuilder builder = new StringBuilder();
195         builder.append("StringType [name=");
196         builder.append(NAME);
197         builder.append(", path=");
198         builder.append(PATH);
199         builder.append(", defaultValue=");
200         builder.append(DEFAULT_VALUE);
201         builder.append(", description=");
202         builder.append(DESCRIPTION);
203         builder.append(", reference=");
204         builder.append(REFERENCE);
205         builder.append(", lengthStatements=");
206         builder.append(lengthStatements);
207         builder.append(", patterns=");
208         builder.append(patterns);
209         builder.append(", units=");
210         builder.append(UNITS);
211         builder.append("]");
212         return builder.toString();
213     }
214 }