BUG-865: deprecate pre-Beryllium parser elements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / GroupingDefinitionImpl.java
1 /*
2  * Copyright (c) 2015 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
9 package org.opendaylight.yangtools.yang.parser.builder.impl;
10
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.GroupingDefinition;
16 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
17 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
18 import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainer;
19
20 /**
21  * @deprecated Pre-Beryllium implementation, scheduled for removal.
22  */
23 @Deprecated
24 final class GroupingDefinitionImpl extends AbstractDocumentedDataNodeContainer implements GroupingDefinition {
25     private final QName qname;
26     private final SchemaPath path;
27
28     boolean addedByUses;
29     ImmutableList<UnknownSchemaNode> unknownNodes;
30
31     GroupingDefinitionImpl(final QName qname, final SchemaPath path, final GroupingBuilderImpl builder) {
32         super(builder);
33         this.qname = qname;
34         this.path = path;
35     }
36
37     @Override
38     public QName getQName() {
39         return qname;
40     }
41
42     @Override
43     public SchemaPath getPath() {
44         return path;
45     }
46
47     @Override
48     public boolean isAddedByUses() {
49         return addedByUses;
50     }
51
52     @Override
53     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
54         return unknownNodes;
55     }
56
57     @Override
58     public int hashCode() {
59         final int prime = 31;
60         int result = 1;
61         result = prime * result + Objects.hashCode(qname);
62         result = prime * result + Objects.hashCode(path);
63         return result;
64     }
65
66     @Override
67     public boolean equals(final Object obj) {
68         if (this == obj) {
69             return true;
70         }
71         if (obj == null) {
72             return false;
73         }
74         if (getClass() != obj.getClass()) {
75             return false;
76         }
77         final GroupingDefinitionImpl other = (GroupingDefinitionImpl) obj;
78         if (qname == null) {
79             if (other.qname != null) {
80                 return false;
81             }
82         } else if (!qname.equals(other.qname)) {
83             return false;
84         }
85         if (path == null) {
86             if (other.path != null) {
87                 return false;
88             }
89         } else if (!path.equals(other.path)) {
90             return false;
91         }
92         return true;
93     }
94
95     @Override
96     public String toString() {
97         StringBuilder sb = new StringBuilder(GroupingDefinitionImpl.class.getSimpleName());
98         sb.append("[");
99         sb.append("qname=").append(qname);
100         sb.append("]");
101         return sb.toString();
102     }
103 }