-/*\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.yangtools.yang.model.util;\r
-\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.opendaylight.yangtools.yang.common.QName;\r
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;\r
-import org.opendaylight.yangtools.yang.model.api.Status;\r
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;\r
-import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;\r
-\r
-/**\r
- * The <code>default</code> implementation of Identityref Type Definition\r
- * interface.\r
- *\r
- * @see IdentityrefTypeDefinition\r
- */\r
-public final class IdentityrefType implements IdentityrefTypeDefinition {\r
- private final QName name = BaseTypes.constructQName("identityref");\r
- private final SchemaPath path;\r
- private final String description = "The identityref type is used to reference an existing identity.";\r
- private final String reference = "https://tools.ietf.org/html/rfc6020#section-9.10";\r
- private final IdentityrefTypeDefinition baseType;\r
- private final QName identity;\r
- private final String units = "";\r
-\r
- public IdentityrefType(QName identity, SchemaPath schemaPath) {\r
- this.identity = identity;\r
- this.path = schemaPath;\r
- this.baseType = this;\r
- }\r
-\r
- @Override\r
- public String getUnits() {\r
- return units;\r
- }\r
-\r
- @Override\r
- public Object getDefaultValue() {\r
- return identity;\r
- }\r
-\r
- @Override\r
- public QName getQName() {\r
- return name;\r
- }\r
-\r
- @Override\r
- public SchemaPath getPath() {\r
- return path;\r
- }\r
-\r
- @Override\r
- public String getDescription() {\r
- return description;\r
- }\r
-\r
- @Override\r
- public String getReference() {\r
- return reference;\r
- }\r
-\r
- @Override\r
- public Status getStatus() {\r
- return Status.CURRENT;\r
- }\r
-\r
- @Override\r
- public List<UnknownSchemaNode> getUnknownSchemaNodes() {\r
- return Collections.emptyList();\r
- }\r
-\r
- @Override\r
- public QName getIdentity() {\r
- return identity;\r
- }\r
-\r
- @Override\r
- public IdentityrefTypeDefinition getBaseType() {\r
- return baseType;\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return "identityref " + identity.getLocalName();\r
- }\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.yangtools.yang.model.util;
+
+import com.google.common.base.Preconditions;
+import java.util.Collections;
+import java.util.List;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
+
+/**
+ * The <code>default</code> implementation of Identityref Type Definition
+ * interface.
+ *
+ * @see IdentityrefTypeDefinition
+ * @deprecated Use {@link org.opendaylight.yangtools.yang.model.util.type.BaseTypes#identityrefTypeBuilder(SchemaPath)} instead
+ */
+@Deprecated
+public final class IdentityrefType implements IdentityrefTypeDefinition {
+ private static final QName NAME = BaseTypes.IDENTITYREF_QNAME;
+ private static final String DESCRIPTION = "The identityref type is used to reference an existing identity.";
+ private static final String REFERENCE = "https://tools.ietf.org/html/rfc6020#section-9.10";
+ private static final String UNITS = "";
+
+ private final IdentitySchemaNode identity;
+ private final SchemaPath path;
+
+ private IdentityrefType(final SchemaPath path, final IdentitySchemaNode baseIdentity) {
+ this.path = Preconditions.checkNotNull(path, "Path must be specified");
+ this.identity = Preconditions.checkNotNull(baseIdentity,"baseIdentity must be specified.");
+ }
+
+ /**
+ * Constructs a new {@link IdentityrefTypeDefinition} definition.
+ *
+ * @param path Path to the definition.
+ * @param baseIdentity Base Identity, all derived identities are valid arguments for instance of this type.
+ * @return New identityref definition.
+ */
+ public static IdentityrefType create(final SchemaPath path, final IdentitySchemaNode baseIdentity) {
+ return new IdentityrefType(path, baseIdentity);
+ }
+
+ @Override
+ public String getUnits() {
+ return UNITS;
+ }
+
+ @Override
+ public Object getDefaultValue() {
+ return null;
+ }
+
+ @Override
+ public QName getQName() {
+ return NAME;
+ }
+
+ @Override
+ public SchemaPath getPath() {
+ return path;
+ }
+
+ @Override
+ public String getDescription() {
+ return DESCRIPTION;
+ }
+
+ @Override
+ public String getReference() {
+ return REFERENCE;
+ }
+
+ @Override
+ public Status getStatus() {
+ return Status.CURRENT;
+ }
+
+ @Override
+ public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public IdentitySchemaNode getIdentity() {
+ return identity;
+ }
+
+ @Override
+ public IdentityrefTypeDefinition getBaseType() {
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "identityref " + identity.getQName().getLocalName();
+ }
+}