9ee73f1dc240e1561d18cb919f34994b2ee66ade
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / NotificationDefinitionImpl.java
1 package org.opendaylight.yangtools.yang.parser.builder.impl;
2
3 import com.google.common.collect.ImmutableList;
4 import com.google.common.collect.ImmutableSet;
5 import java.util.List;
6 import java.util.Set;
7 import org.opendaylight.yangtools.yang.common.QName;
8 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
9 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
10 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
11 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
12 import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainer;
13
14 final class NotificationDefinitionImpl extends AbstractDocumentedDataNodeContainer implements
15 NotificationDefinition {
16     private final QName qname;
17     private final SchemaPath path;
18     ImmutableSet<AugmentationSchema> augmentations;
19     ImmutableList<UnknownSchemaNode> unknownNodes;
20
21     NotificationDefinitionImpl(final QName qname, final SchemaPath path, final NotificationBuilder builder) {
22         super(builder);
23         // TODO Auto-generated constructor stub
24         this.qname = qname;
25         this.path = path;
26     }
27
28     @Override
29     public QName getQName() {
30         return qname;
31     }
32
33     @Override
34     public SchemaPath getPath() {
35         return path;
36     }
37
38     @Override
39     public Set<AugmentationSchema> getAvailableAugmentations() {
40         return augmentations;
41     }
42
43     @Override
44     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
45         return unknownNodes;
46     }
47
48     @Override
49     public int hashCode() {
50         final int prime = 31;
51         int result = 1;
52         result = prime * result + ((qname == null) ? 0 : qname.hashCode());
53         result = prime * result + ((path == null) ? 0 : path.hashCode());
54         return result;
55     }
56
57     @Override
58     public boolean equals(final Object obj) {
59         if (this == obj) {
60             return true;
61         }
62         if (obj == null) {
63             return false;
64         }
65         if (getClass() != obj.getClass()) {
66             return false;
67         }
68         final NotificationDefinitionImpl other = (NotificationDefinitionImpl) obj;
69         if (qname == null) {
70             if (other.qname != null) {
71                 return false;
72             }
73         } else if (!qname.equals(other.qname)) {
74             return false;
75         }
76         if (path == null) {
77             if (other.path != null) {
78                 return false;
79             }
80         } else if (!path.equals(other.path)) {
81             return false;
82         }
83         return true;
84     }
85
86     @Override
87     public String toString() {
88         StringBuilder sb = new StringBuilder(NotificationDefinitionImpl.class.getSimpleName());
89         sb.append("[qname=").append(qname).append(", path=").append(path).append("]");
90         return sb.toString();
91     }
92 }