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) {
this.effectiveRepresentation = requireNonNull(effectiveRepresentation);
}
- @Nonnull
- private static QName createQName(final String namespace, final String localName) {
- return QName.create(namespace, localName).intern();
- }
-
- @Nonnull
- private static QName createQName(final String namespace, final String revision, final String localName) {
- return QName.create(namespace, revision, localName).intern();
- }
-
- @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;
- }
}