Add OpenConfig pattern-related statement definitions
[yangtools.git] / yang / openconfig-model-api / src / main / java / org / opendaylight / yangtools / openconfig / model / api / OpenConfigStatements.java
index 0172cafdcc21dd0df5794cda9ddefea04bae613c..6da5875c077014236ccf008c15c2b0112a959bed 100644 (file)
@@ -10,27 +10,36 @@ package org.opendaylight.yangtools.openconfig.model.api;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.ArgumentDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
 @Beta
+@NonNullByDefault
 public enum OpenConfigStatements implements StatementDefinition {
     OPENCONFIG_ENCRYPTED_VALUE(QName.create(OpenConfigConstants.ENCRYPTED_VALUE_MODULE, "openconfig-encrypted-value"),
         null, OpenConfigHashedValueStatement.class, OpenConfigHashedValueEffectiveStatement.class),
     OPENCONFIG_HASHED_VALUE(QName.create(OpenConfigConstants.HASHED_VALUE_MODULE, "openconfig-hashed-value"), null,
         OpenConfigHashedValueStatement.class, OpenConfigHashedValueEffectiveStatement.class),
+    OPENCONFIG_POSIX_PATTERN(QName.create(OpenConfigConstants.REGEXP_POSIX_MODULE, "posix-pattern"), "pattern",
+        OpenConfigPosixPatternStatement.class, OpenConfigPosixPatternEffectiveStatement.class),
+    OPENCONFIG_REGEXP_POSIX(QName.create(OpenConfigConstants.REGEXP_POSIX_MODULE, "regexp-posix"), null,
+        OpenConfigRegexpPosixStatement.class, OpenConfigRegexpPosixEffectiveStatement.class),
     OPENCONFIG_VERSION(QName.create(OpenConfigConstants.MODULE_NAMESPACE, "openconfig-version"), "semver",
         OpenConfigVersionStatement.class, OpenConfigVersionEffectiveStatement.class);
 
     private final Class<? extends EffectiveStatement<?, ?>> effectiveRepresentation;
     private final Class<? extends DeclaredStatement<?>> declaredRepresentation;
     private final QName statementName;
-    private final QName argumentName;
+    private final @Nullable QName argumentName;
 
+    @SuppressFBWarnings("NP_STORE_INTO_NONNULL_FIELD")
     OpenConfigStatements(final QName statementName, @Nullable final String argumentName,
             final Class<? extends DeclaredStatement<?>> declaredRepresentation,
             final Class<? extends EffectiveStatement<?, ?>> effectiveRepresentation) {
@@ -40,32 +49,23 @@ public enum OpenConfigStatements implements StatementDefinition {
         this.effectiveRepresentation = requireNonNull(effectiveRepresentation);
     }
 
-    @Nonnull
     @Override
     public QName getStatementName() {
         return statementName;
     }
 
     @Override
-    @Nullable
-    public QName getArgumentName() {
-        return argumentName;
+    public Optional<ArgumentDefinition> getArgumentDefinition() {
+        return ArgumentDefinition.ofNullable(argumentName, false);
     }
 
     @Override
-    @Nonnull
     public Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
         return declaredRepresentation;
     }
 
-    @Nonnull
     @Override
     public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
         return effectiveRepresentation;
     }
-
-    @Override
-    public boolean isArgumentYinElement() {
-        return false;
-    }
 }