2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.yangtools.yang.parser.builder.impl;
10 import com.google.common.base.Preconditions;
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.FeatureDefinition;
16 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
17 import org.opendaylight.yangtools.yang.model.api.Status;
18 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
19 import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
20 import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
23 * @deprecated Pre-Beryllium implementation, scheduled for removal.
26 public final class FeatureBuilder extends AbstractSchemaNodeBuilder {
27 private FeatureDefinitionImpl instance;
29 FeatureBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
30 super(moduleName, line, qname);
31 this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
35 public FeatureDefinitionImpl build() {
36 if (instance != null) {
40 instance = new FeatureDefinitionImpl(qname, schemaPath);
43 for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
44 unknownNodes.add(b.build());
46 instance.unknownNodes = ImmutableList.copyOf(unknownNodes);
52 public String toString() {
53 return "feature " + qname.getLocalName();
56 private static final class FeatureDefinitionImpl implements FeatureDefinition {
57 private final QName qname;
58 private final SchemaPath path;
59 private String description;
60 private String reference;
61 private Status status;
62 private ImmutableList<UnknownSchemaNode> unknownNodes;
64 private FeatureDefinitionImpl(final QName qname, final SchemaPath path) {
70 public QName getQName() {
75 public SchemaPath getPath() {
80 public String getDescription() {
85 public String getReference() {
90 public Status getStatus() {
95 public List<UnknownSchemaNode> getUnknownSchemaNodes() {
100 public int hashCode() {
101 final int prime = 31;
103 result = prime * result + Objects.hashCode(qname);
104 result = prime * result + Objects.hashCode(path);
109 public boolean equals(final Object obj) {
116 if (getClass() != obj.getClass()) {
119 FeatureDefinitionImpl other = (FeatureDefinitionImpl) obj;
121 if (other.qname != null) {
124 } else if (!qname.equals(other.qname)) {
128 if (other.path != null) {
131 } else if (!path.equals(other.path)) {
138 public String toString() {
139 return FeatureDefinitionImpl.class.getSimpleName() + "[name=" + qname + "]";