BUG-865: deprecate pre-Beryllium parser elements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / LeafSchemaNodeImpl.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.parser.builder.impl;
9
10 import com.google.common.base.Optional;
11 import com.google.common.collect.ImmutableList;
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.ConstraintDefinition;
16 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
17 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
18 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
19 import org.opendaylight.yangtools.yang.model.api.Status;
20 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
21 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
22
23 /**
24  * @deprecated Pre-Beryllium implementation, scheduled for removal.
25  */
26 @Deprecated
27 final class LeafSchemaNodeImpl implements LeafSchemaNode, DerivableSchemaNode {
28     private final QName qname;
29     private final SchemaPath path;
30     String description;
31     String reference;
32     Status status;
33     boolean augmenting;
34     boolean addedByUses;
35     LeafSchemaNode original;
36     boolean configuration;
37     ConstraintDefinition constraintsDef;
38     TypeDefinition<?> type;
39     ImmutableList<UnknownSchemaNode> unknownNodes;
40     String defaultStr;
41     String unitsStr;
42
43     LeafSchemaNodeImpl(final QName qname, final SchemaPath path) {
44         this.qname = qname;
45         this.path = path;
46     }
47
48     @Override
49     public QName getQName() {
50         return qname;
51     }
52
53     @Override
54     public SchemaPath getPath() {
55         return path;
56     }
57
58     @Override
59     public String getDescription() {
60         return description;
61     }
62
63     @Override
64     public String getReference() {
65         return reference;
66     }
67
68     @Override
69     public Status getStatus() {
70         return status;
71     }
72
73     @Override
74     public boolean isAugmenting() {
75         return augmenting;
76     }
77
78     @Override
79     public boolean isAddedByUses() {
80         return addedByUses;
81     }
82
83     @Override
84     public Optional<LeafSchemaNode> getOriginal() {
85         return Optional.fromNullable(original);
86     }
87
88     @Override
89     public boolean isConfiguration() {
90         return configuration;
91     }
92
93     @Override
94     public ConstraintDefinition getConstraints() {
95         return constraintsDef;
96     }
97
98     @Override
99     public TypeDefinition<?> getType() {
100         return type;
101     }
102
103     @Override
104     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
105         return unknownNodes;
106     }
107
108     @Override
109     public String getDefault() {
110         return defaultStr;
111     }
112
113     @Override
114     public String getUnits() {
115         return unitsStr;
116     }
117
118     @Override
119     public int hashCode() {
120         final int prime = 31;
121         int result = 1;
122         result = prime * result + Objects.hashCode(qname);
123         result = prime * result + Objects.hashCode(path);
124         return result;
125     }
126
127     @Override
128     public boolean equals(final Object obj) {
129         if (this == obj) {
130             return true;
131         }
132         if (obj == null) {
133             return false;
134         }
135         if (getClass() != obj.getClass()) {
136             return false;
137         }
138         LeafSchemaNodeImpl other = (LeafSchemaNodeImpl) obj;
139         if (qname == null) {
140             if (other.qname != null) {
141                 return false;
142             }
143         } else if (!qname.equals(other.qname)) {
144             return false;
145         }
146         if (path == null) {
147             if (other.path != null) {
148                 return false;
149             }
150         } else if (!path.equals(other.path)) {
151             return false;
152         }
153         return true;
154     }
155
156     @Override
157     public String toString() {
158         StringBuilder sb = new StringBuilder(LeafSchemaNodeImpl.class.getSimpleName());
159         sb.append("[");
160         sb.append("qname=").append(qname);
161         sb.append(", path=").append(path);
162         sb.append("]");
163         return sb.toString();
164     }
165 }