X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-xpath-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fxpath%2Fapi%2FYangLiteralExpr.java;h=efff7c6929ae6f0bea91b81a8a64532ba34a9815;hb=d3bd58ed1f89d2bc84c420b93529ef0f9182d277;hp=1ece060f05e1ec00c3d6b731440f8a7bb6ce817b;hpb=a8b6aec2bf3770000f25d9d91ca797d41c1d9d52;p=yangtools.git diff --git a/yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLiteralExpr.java b/yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLiteralExpr.java index 1ece060f05..efff7c6929 100644 --- a/yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLiteralExpr.java +++ b/yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLiteralExpr.java @@ -28,22 +28,9 @@ import org.eclipse.jdt.annotation.Nullable; * @author Robert Varga */ @Beta -public class YangLiteralExpr implements YangExpr { - private static final class Empty extends YangLiteralExpr { - private static final long serialVersionUID = 1L; - - Empty() { - super(""); - } - - @SuppressWarnings("static-method") - Object readResolve() { - return empty(); - } - } - +public final class YangLiteralExpr implements YangExpr { private static final long serialVersionUID = 1L; - private static final YangLiteralExpr EMPTY = new Empty(); + private static final YangLiteralExpr EMPTY = new YangLiteralExpr(""); private final String literal; @@ -51,30 +38,34 @@ public class YangLiteralExpr implements YangExpr { this.literal = requireNonNull(literal); } - public static final YangLiteralExpr empty() { + public static YangLiteralExpr empty() { return EMPTY; } - public static final YangLiteralExpr of(final String literal) { + public static YangLiteralExpr of(final String literal) { return literal.isEmpty() ? EMPTY : new YangLiteralExpr(literal); } - public final String getLiteral() { + public String getLiteral() { return literal; } @Override - public final int hashCode() { + public int hashCode() { return literal.hashCode(); } @Override - public final boolean equals(final @Nullable Object obj) { + public boolean equals(final @Nullable Object obj) { return this == obj || obj instanceof YangLiteralExpr && literal.equals(((YangLiteralExpr) obj).literal); } @Override - public final String toString() { + public String toString() { return literal; } + + protected Object readResolve() { + return literal.isEmpty() ? EMPTY : this; + } }