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.Objects;
13 import org.opendaylight.yangtools.yang.common.QName;
14 import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
15 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
16 import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
17 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
18 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
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 AnyXmlBuilder extends AbstractSchemaNodeBuilder implements DataSchemaNodeBuilder {
27 private AnyXmlSchemaNodeImpl instance;
29 private boolean augmenting;
30 private boolean addedByUses;
31 private boolean configuration;
32 private AnyXmlSchemaNode originalNode;
33 private AnyXmlBuilder originalBuilder;
34 private final ConstraintsBuilder constraints;
36 public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
37 super(moduleName, line, qname);
38 this.schemaPath = path;
39 constraints = new ConstraintsBuilderImpl(moduleName, line);
42 public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path,
43 final AnyXmlSchemaNode base) {
44 super(moduleName, line, qname);
45 this.schemaPath = path;
46 constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
48 description = base.getDescription();
49 reference = base.getReference();
50 status = base.getStatus();
51 augmenting = base.isAugmenting();
52 addedByUses = base.isAddedByUses();
54 configuration = base.isConfiguration();
55 unknownNodes.addAll(base.getUnknownSchemaNodes());
59 public AnyXmlSchemaNode build() {
60 if (instance != null) {
64 instance = new AnyXmlSchemaNodeImpl(qname, schemaPath);
66 instance.description = description;
67 instance.reference = reference;
68 instance.status = status;
69 instance.augmenting = augmenting;
70 instance.addedByUses = addedByUses;
71 instance.configuration = configuration;
72 instance.constraintsDef = constraints.build();
75 if (originalNode == null && originalBuilder != null) {
76 originalNode = originalBuilder.build();
78 instance.original = originalNode;
81 for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
82 unknownNodes.add(b.build());
84 instance.unknownNodes = ImmutableList.copyOf(unknownNodes);
90 public ConstraintsBuilder getConstraints() {
95 public boolean isAugmenting() {
100 public void setAugmenting(final boolean augmenting) {
101 this.augmenting = augmenting;
105 public boolean isAddedByUses() {
110 public void setAddedByUses(final boolean addedByUses) {
111 this.addedByUses = addedByUses;
115 public AnyXmlBuilder getOriginal() {
116 return originalBuilder;
120 public void setOriginal(final SchemaNodeBuilder builder) {
121 Preconditions.checkArgument(builder instanceof AnyXmlBuilder, "Original of anyxml cannot be " + builder);
122 this.originalBuilder = (AnyXmlBuilder) builder;
126 public boolean isConfiguration() {
127 return configuration;
131 public void setConfiguration(final boolean configuration) {
132 this.configuration = configuration;
136 public int hashCode() {
137 final int prime = 31;
139 result = prime * result + Objects.hashCode(schemaPath);
144 public boolean equals(final Object obj) {
151 if (getClass() != obj.getClass()) {
154 AnyXmlBuilder other = (AnyXmlBuilder) obj;
155 if (schemaPath == null) {
156 if (other.schemaPath != null) {
159 } else if (!schemaPath.equals(other.schemaPath)) {
162 if (getParent() == null) {
163 if (other.getParent() != null) {
166 } else if (!getParent().equals(other.getParent())) {
173 public String toString() {
174 return "anyxml " + qname.getLocalName();