Updated YANG Type definitions and documentation in YANG Model Utils.
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-util / src / main / java / org / opendaylight / controller / model / util / Uint16.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.model.util;\r
9 \r
10 import java.util.List;\r
11 \r
12 import org.opendaylight.controller.model.api.type.RangeConstraint;\r
13 import org.opendaylight.controller.model.api.type.UnsignedIntegerTypeDefinition;\r
14 import org.opendaylight.controller.yang.common.QName;\r
15 \r
16 /**\r
17  * Implementation of Yang uint32 built-in type. <br>\r
18  * uint16 represents integer values between 0 and 65535, inclusively. The Java\r
19  * counterpart of Yang uint32 built-in type is {@link Integer}.\r
20  * \r
21  */\r
22 public class Uint16 extends AbstractUnsignedInteger {\r
23 \r
24     private static final QName name = BaseTypes.constructQName("uint16");\r
25     private Integer defaultValue = null;\r
26     private static final String description = "uint16 represents integer values between 0 and 65535, inclusively.";\r
27 \r
28     public Uint16() {\r
29         super(name, description, Short.MIN_VALUE, Short.MAX_VALUE, "");\r
30     }\r
31 \r
32     public Uint16(final Integer defaultValue) {\r
33         super(name, description, Short.MIN_VALUE, Short.MAX_VALUE, "");\r
34         this.defaultValue = defaultValue;\r
35     }\r
36 \r
37     public Uint16(final List<RangeConstraint> rangeStatements,\r
38             final String units, final Integer defaultValue) {\r
39         super(name, description, rangeStatements, units);\r
40         this.defaultValue = defaultValue;\r
41     }\r
42 \r
43     /*\r
44      * (non-Javadoc)\r
45      * \r
46      * @see\r
47      * org.opendaylight.controller.yang.model.api.TypeDefinition#getBaseType()\r
48      */\r
49     @Override\r
50     public UnsignedIntegerTypeDefinition getBaseType() {\r
51         return this;\r
52     }\r
53 \r
54     /*\r
55      * (non-Javadoc)\r
56      * \r
57      * @see\r
58      * org.opendaylight.controller.yang.model.api.TypeDefinition#getDefaultValue\r
59      * ()\r
60      */\r
61     @Override\r
62     public Object getDefaultValue() {\r
63         return defaultValue;\r
64     }\r
65 \r
66     @Override\r
67     public int hashCode() {\r
68         final int prime = 31;\r
69         int result = super.hashCode();\r
70         result = prime * result\r
71                 + ((defaultValue == null) ? 0 : defaultValue.hashCode());\r
72         return result;\r
73     }\r
74 \r
75     @Override\r
76     public boolean equals(Object obj) {\r
77         if (this == obj) {\r
78             return true;\r
79         }\r
80         if (!super.equals(obj)) {\r
81             return false;\r
82         }\r
83         if (getClass() != obj.getClass()) {\r
84             return false;\r
85         }\r
86         Uint16 other = (Uint16) obj;\r
87         if (defaultValue == null) {\r
88             if (other.defaultValue != null) {\r
89                 return false;\r
90             }\r
91         } else if (!defaultValue.equals(other.defaultValue)) {\r
92             return false;\r
93         }\r
94         return true;\r
95     }\r
96 \r
97     @Override\r
98     public String toString() {\r
99         StringBuilder builder = new StringBuilder();\r
100         builder.append("Uint16 [defaultValue=");\r
101         builder.append(defaultValue);\r
102         builder.append(", AbstractInteger=");\r
103         builder.append(super.toString());\r
104         builder.append("]");\r
105         return builder.toString();\r
106     }\r
107 }\r