Merge "BUG-2350: do encapsulte null snapshot"
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / EmptyType.java
index 3648a179be34c8e26eac2a1c93e6c4d3da3de981..7efebad4d43bdd4b0d2d5c8a84826de0ef09082e 100644 (file)
@@ -10,27 +10,30 @@ package org.opendaylight.yangtools.yang.model.util;
 import java.util.Collections;
 import java.util.List;
 
+import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 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.EmptyTypeDefinition;
 
-public final class EmptyType implements EmptyTypeDefinition {
-    private final QName name = BaseTypes.constructQName("empty");
-    private final SchemaPath path;
-    private final String description = "The empty built-in type represents a leaf that does not have any value, it conveys information by its presence or absence.";
-    private final String reference = "https://tools.ietf.org/html/rfc6020#page-131";
-    private final EmptyTypeDefinition baseType;
+public final class EmptyType implements EmptyTypeDefinition, Immutable {
+    private static final EmptyType INSTANCE = new EmptyType();
+    private static final QName NAME = BaseTypes.EMPTY_QNAME;
+    private static final SchemaPath PATH = SchemaPath.create(Collections.singletonList(NAME), true);
+    private static final String DESCRIPTION = "The empty built-in type represents a leaf that does not have any value, it conveys information by its presence or absence.";
+    private static final String REFERENCE = "https://tools.ietf.org/html/rfc6020#page-131";
 
-    public EmptyType(final SchemaPath path) {
-        this.path = path;
-        this.baseType = this;
+    private EmptyType() {
+    }
+
+    public static EmptyType getInstance() {
+        return INSTANCE;
     }
 
     @Override
     public EmptyTypeDefinition getBaseType() {
-        return baseType;
+        return null;
     }
 
     @Override
@@ -45,22 +48,22 @@ public final class EmptyType implements EmptyTypeDefinition {
 
     @Override
     public QName getQName() {
-        return name;
+        return NAME;
     }
 
     @Override
     public SchemaPath getPath() {
-        return path;
+        return PATH;
     }
 
     @Override
     public String getDescription() {
-        return description;
+        return DESCRIPTION;
     }
 
     @Override
     public String getReference() {
-        return reference;
+        return REFERENCE;
     }
 
     @Override
@@ -73,4 +76,9 @@ public final class EmptyType implements EmptyTypeDefinition {
         return Collections.emptyList();
     }
 
+    @Override
+    public String toString() {
+        return "type empty " + NAME;
+    }
+
 }