Merge "Migrate ClassLoaderUtils callers"
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / ChoiceCaseNodeImpl.java
1 package org.opendaylight.yangtools.yang.parser.builder.impl;
2
3 import com.google.common.base.Optional;
4 import com.google.common.collect.ImmutableList;
5 import com.google.common.collect.ImmutableSet;
6 import java.util.List;
7 import java.util.Set;
8 import org.opendaylight.yangtools.yang.common.QName;
9 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
10 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
11 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
12 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
13 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
14 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
15 import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainer;
16
17 final class ChoiceCaseNodeImpl extends AbstractDocumentedDataNodeContainer implements ChoiceCaseNode, DerivableSchemaNode {
18     private final QName qname;
19     private final SchemaPath path;
20     boolean augmenting;
21     boolean addedByUses;
22     ChoiceCaseNode original;
23     ConstraintDefinition constraints;
24     ImmutableSet<AugmentationSchema> augmentations;
25     ImmutableList<UnknownSchemaNode> unknownNodes;
26
27     ChoiceCaseNodeImpl(final QName qname, final SchemaPath path,final ChoiceCaseBuilder builder) {
28         super(builder);
29         this.qname = qname;
30         this.path = path;
31     }
32
33     @Override
34     public QName getQName() {
35         return qname;
36     }
37
38     @Override
39     public SchemaPath getPath() {
40         return path;
41     }
42
43     @Override
44     public boolean isConfiguration() {
45         return false;
46     }
47
48     @Override
49     public ConstraintDefinition getConstraints() {
50         return constraints;
51     }
52
53     @Override
54     public boolean isAugmenting() {
55         return augmenting;
56     }
57
58     @Override
59     public boolean isAddedByUses() {
60         return addedByUses;
61     }
62
63     @Override
64     public Optional<ChoiceCaseNode> getOriginal() {
65         return Optional.fromNullable(original);
66     }
67
68     @Override
69     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
70         return unknownNodes;
71     }
72
73     @Override
74     public Set<AugmentationSchema> getAvailableAugmentations() {
75         return augmentations;
76     }
77
78     @Override
79     public int hashCode() {
80         final int prime = 31;
81         int result = 1;
82         result = prime * result + ((qname == null) ? 0 : qname.hashCode());
83         result = prime * result + ((path == null) ? 0 : path.hashCode());
84         return result;
85     }
86
87     @Override
88     public boolean equals(final Object obj) {
89         if (this == obj) {
90             return true;
91         }
92         if (obj == null) {
93             return false;
94         }
95         if (getClass() != obj.getClass()) {
96             return false;
97         }
98         ChoiceCaseNodeImpl other = (ChoiceCaseNodeImpl) obj;
99         if (qname == null) {
100             if (other.qname != null) {
101                 return false;
102             }
103         } else if (!qname.equals(other.qname)) {
104             return false;
105         }
106         if (path == null) {
107             if (other.path != null) {
108                 return false;
109             }
110         } else if (!path.equals(other.path)) {
111             return false;
112         }
113         return true;
114     }
115
116     @Override
117     public String toString() {
118         StringBuilder sb = new StringBuilder(ChoiceCaseNodeImpl.class.getSimpleName());
119         sb.append("[");
120         sb.append("qname=");
121         sb.append(qname);
122         sb.append("]");
123         return sb.toString();
124     }
125
126 }