+ this.schemaPath = path;
+ instance = new UnknownSchemaNodeImpl(qname, path);
+ }
+
+ public UnknownSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, final UnknownSchemaNode base) {
+ super(moduleName, line, base.getQName());
+ this.schemaPath = path;
+ instance = new UnknownSchemaNodeImpl(qname, path);
+
+ instance.nodeType = base.getNodeType();
+ instance.nodeParameter = base.getNodeParameter();
+ instance.description = base.getDescription();
+ instance.reference = base.getReference();
+ instance.status = base.getStatus();
+ instance.addedByUses = base.isAddedByUses();
+ instance.extension = base.getExtensionDefinition();
+ instance.unknownNodes.addAll(base.getUnknownSchemaNodes());
+ }
+
+ @Override
+ public SchemaPath getPath() {
+ return instance.path;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((qname == null) ? 0 : qname.hashCode());
+ result = prime * result + ((schemaPath == null) ? 0 : schemaPath.hashCode());
+ result = prime * result + ((nodeType == null) ? 0 : nodeType.hashCode());
+ result = prime * result + ((nodeParameter == null) ? 0 : nodeParameter.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ UnknownSchemaNodeBuilder other = (UnknownSchemaNodeBuilder) obj;
+ if (qname == null) {
+ if (other.qname != null) {
+ return false;
+ }
+ } else if (!qname.equals(other.qname)) {
+ return false;
+ }
+ if (schemaPath == null) {
+ if (other.schemaPath != null) {
+ return false;
+ }
+ } else if (!schemaPath.equals(other.schemaPath)) {
+ return false;
+ }
+ if (nodeType == null) {
+ if (other.nodeType != null) {
+ return false;
+ }
+ } else if (!nodeType.equals(other.nodeType)) {
+ return false;
+ }
+ if (nodeParameter == null) {
+ if (other.nodeParameter != null) {
+ return false;
+ }
+ } else if (!nodeParameter.equals(other.nodeParameter)) {
+ return false;
+ }
+ return true;