X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Fapi%2Fstmt%2FOrderedByStatement.java;h=f2530a7f8ed7f78cfa2c873dacca301c75cce644;hb=62d7ddd750e36387d7be16e366064ea7e794f502;hp=bb3935c7caa7b853f0740ba8dd18f5f0a62ebf94;hpb=6445362084c167640d41a1dec9127899fb54b8c0;p=yangtools.git diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrderedByStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrderedByStatement.java index bb3935c7ca..f2530a7f8e 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrderedByStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrderedByStatement.java @@ -7,11 +7,49 @@ */ package org.opendaylight.yangtools.yang.model.api.stmt; -import javax.annotation.Nonnull; +import static com.google.common.base.Verify.verifyNotNull; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; +import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; -public interface OrderedByStatement extends DeclaredStatement { +public interface OrderedByStatement extends DeclaredStatement { + @NonNullByDefault + enum Ordering { + SYSTEM("system"), + USER("user"); - @Nonnull String getValue(); -} + private String argumentString; + + Ordering(final String argumentString) { + this.argumentString = argumentString; + } + + public String getArgumentString() { + return argumentString; + } + public static Ordering forArgumentString(final String argumentString) { + switch (argumentString) { + case "system": + return SYSTEM; + case "user": + return USER; + default: + throw new IllegalArgumentException("Invalid ordering string '" + argumentString + "'"); + } + } + } + + @Override + default StatementDefinition statementDefinition() { + return YangStmtMapping.ORDERED_BY; + } + + default @NonNull Ordering getValue() { + // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here + return verifyNotNull(argument()); + } +}