-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.yang.model.util;\r
-\r
-import java.net.URI;\r
-import java.util.Collections;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import org.opendaylight.controller.yang.common.QName;\r
-import org.opendaylight.controller.yang.model.api.RevisionAwareXPath;\r
-import org.opendaylight.controller.yang.model.api.SchemaPath;\r
-import org.opendaylight.controller.yang.model.api.Status;\r
-import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;\r
-import org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition;\r
-\r
-/**\r
- * The <code>default</code> implementation of Instance Leafref Type Definition\r
- * interface.\r
- *\r
- * @see LeafrefTypeDefinition\r
- */\r
-public class Leafref implements LeafrefTypeDefinition {\r
- private static final QName name = BaseTypes.constructQName("leafref");\r
- private static final String description = "The leafref type is used to reference a "\r
- + "particular leaf instance in the data tree.";\r
- private static final String reference = "https://tools.ietf.org/html/rfc6020#section-9.9";\r
- private final SchemaPath path;\r
- private final RevisionAwareXPath xpath;\r
- private final String units = "";\r
- private final LeafrefTypeDefinition baseType;\r
-\r
- public Leafref(final RevisionAwareXPath xpath) {\r
- this.xpath = xpath;\r
- this.path = BaseTypes.schemaPath(name);\r
- this.baseType = this;\r
- }\r
-\r
- public Leafref(final List<String> actualPath, final URI namespace,\r
- final Date revision, final RevisionAwareXPath xpath) {\r
- super();\r
- this.path = BaseTypes.schemaPath(actualPath, namespace, revision);\r
- this.xpath = xpath;\r
- baseType = new Leafref(xpath);\r
- }\r
-\r
- public Leafref(final List<String> actualPath, final URI namespace,\r
- final Date revision, final LeafrefTypeDefinition baseType,\r
- final RevisionAwareXPath xpath) {\r
- super();\r
- this.path = BaseTypes.schemaPath(actualPath, namespace, revision);\r
- this.xpath = xpath;\r
- this.baseType = baseType;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see\r
- * org.opendaylight.controller.yang.model.api.TypeDefinition#getBaseType()\r
- */\r
- @Override\r
- public LeafrefTypeDefinition getBaseType() {\r
- return baseType;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getUnits()\r
- */\r
- @Override\r
- public String getUnits() {\r
- return units;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see\r
- * org.opendaylight.controller.yang.model.api.TypeDefinition#getDefaultValue\r
- * ()\r
- */\r
- @Override\r
- public Object getDefaultValue() {\r
- return this;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see org.opendaylight.controller.yang.model.api.SchemaNode#getQName()\r
- */\r
- @Override\r
- public QName getQName() {\r
- return name;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see org.opendaylight.controller.yang.model.api.SchemaNode#getPath()\r
- */\r
- @Override\r
- public SchemaPath getPath() {\r
- return path;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see\r
- * org.opendaylight.controller.yang.model.api.SchemaNode#getDescription()\r
- */\r
- @Override\r
- public String getDescription() {\r
- return description;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see org.opendaylight.controller.yang.model.api.SchemaNode#getReference()\r
- */\r
- @Override\r
- public String getReference() {\r
- return reference;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see org.opendaylight.controller.yang.model.api.SchemaNode#getStatus()\r
- */\r
- @Override\r
- public Status getStatus() {\r
- return Status.CURRENT;\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see\r
- * org.opendaylight.controller.yang.model.api.SchemaNode#getExtensionSchemaNodes\r
- * ()\r
- */\r
- @Override\r
- public List<UnknownSchemaNode> getUnknownSchemaNodes() {\r
- return Collections.emptyList();\r
- }\r
-\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see\r
- * org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition\r
- * #getPathStatement()\r
- */\r
- @Override\r
- public RevisionAwareXPath getPathStatement() {\r
- return xpath;\r
- }\r
-\r
- @Override\r
- public int hashCode() {\r
- final int prime = 31;\r
- int result = 1;\r
- result = prime * result + ((path == null) ? 0 : path.hashCode());\r
- result = prime * result + ((units == null) ? 0 : units.hashCode());\r
- result = prime * result + ((xpath == null) ? 0 : xpath.hashCode());\r
- return result;\r
- }\r
-\r
- @Override\r
- public boolean equals(Object obj) {\r
- if (this == obj) {\r
- return true;\r
- }\r
- if (obj == null) {\r
- return false;\r
- }\r
- if (getClass() != obj.getClass()) {\r
- return false;\r
- }\r
- Leafref other = (Leafref) obj;\r
- if (path == null) {\r
- if (other.path != null) {\r
- return false;\r
- }\r
- } else if (!path.equals(other.path)) {\r
- return false;\r
- }\r
- if (units == null) {\r
- if (other.units != null) {\r
- return false;\r
- }\r
- } else if (!units.equals(other.units)) {\r
- return false;\r
- }\r
- if (xpath == null) {\r
- if (other.xpath != null) {\r
- return false;\r
- }\r
- } else if (!xpath.equals(other.xpath)) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- StringBuilder builder = new StringBuilder();\r
- builder.append("Leafref [path=");\r
- builder.append(path);\r
- builder.append(", xpath=");\r
- builder.append(xpath);\r
- builder.append(", units=");\r
- builder.append(units);\r
- builder.append("]");\r
- return builder.toString();\r
- }\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.yang.model.util;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import org.opendaylight.controller.yang.common.QName;
+import org.opendaylight.controller.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.controller.yang.model.api.SchemaPath;
+import org.opendaylight.controller.yang.model.api.Status;
+import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
+import org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition;
+
+/**
+ * The <code>default</code> implementation of Instance Leafref Type Definition
+ * interface.
+ *
+ * @see LeafrefTypeDefinition
+ */
+public class Leafref implements LeafrefTypeDefinition {
+ private static final QName name = BaseTypes.constructQName("leafref");
+ private static final String description = "The leafref type is used to reference a "
+ + "particular leaf instance in the data tree.";
+ private static final String reference = "https://tools.ietf.org/html/rfc6020#section-9.9";
+ private final SchemaPath path;
+ private final RevisionAwareXPath xpath;
+ private final String units = "";
+ private final LeafrefTypeDefinition baseType;
+
+ private Leafref(final RevisionAwareXPath xpath) {
+ this.xpath = xpath;
+ this.path = BaseTypes.schemaPath(name);
+ this.baseType = this;
+ }
+
+ public Leafref(final List<String> actualPath, final URI namespace,
+ final Date revision, final RevisionAwareXPath xpath) {
+ super();
+ this.path = BaseTypes.schemaPath(actualPath, namespace, revision);
+ this.xpath = xpath;
+ baseType = new Leafref(xpath);
+ }
+
+ public Leafref(final List<String> actualPath, final URI namespace,
+ final Date revision, final LeafrefTypeDefinition baseType,
+ final RevisionAwareXPath xpath) {
+ super();
+ this.path = BaseTypes.schemaPath(actualPath, namespace, revision);
+ this.xpath = xpath;
+ this.baseType = baseType;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.controller.yang.model.api.TypeDefinition#getBaseType()
+ */
+ @Override
+ public LeafrefTypeDefinition getBaseType() {
+ return baseType;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getUnits()
+ */
+ @Override
+ public String getUnits() {
+ return units;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.controller.yang.model.api.TypeDefinition#getDefaultValue
+ * ()
+ */
+ @Override
+ public Object getDefaultValue() {
+ return this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.opendaylight.controller.yang.model.api.SchemaNode#getQName()
+ */
+ @Override
+ public QName getQName() {
+ return name;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.opendaylight.controller.yang.model.api.SchemaNode#getPath()
+ */
+ @Override
+ public SchemaPath getPath() {
+ return path;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.controller.yang.model.api.SchemaNode#getDescription()
+ */
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.opendaylight.controller.yang.model.api.SchemaNode#getReference()
+ */
+ @Override
+ public String getReference() {
+ return reference;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.opendaylight.controller.yang.model.api.SchemaNode#getStatus()
+ */
+ @Override
+ public Status getStatus() {
+ return Status.CURRENT;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.controller.yang.model.api.SchemaNode#getExtensionSchemaNodes
+ * ()
+ */
+ @Override
+ public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+ return Collections.emptyList();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition
+ * #getPathStatement()
+ */
+ @Override
+ public RevisionAwareXPath getPathStatement() {
+ return xpath;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((path == null) ? 0 : path.hashCode());
+ result = prime * result + ((units == null) ? 0 : units.hashCode());
+ result = prime * result + ((xpath == null) ? 0 : xpath.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;
+ }
+ Leafref other = (Leafref) obj;
+ if (path == null) {
+ if (other.path != null) {
+ return false;
+ }
+ } else if (!path.equals(other.path)) {
+ return false;
+ }
+ if (units == null) {
+ if (other.units != null) {
+ return false;
+ }
+ } else if (!units.equals(other.units)) {
+ return false;
+ }
+ if (xpath == null) {
+ if (other.xpath != null) {
+ return false;
+ }
+ } else if (!xpath.equals(other.xpath)) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("Leafref [path=");
+ builder.append(path);
+ builder.append(", xpath=");
+ builder.append(xpath);
+ builder.append(", units=");
+ builder.append(units);
+ builder.append("]");
+ return builder.toString();
+ }
+}