*/
package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
+import static org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator.MAX;
+
import com.google.common.base.Verify;
import java.util.Collection;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition;
+import org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator;
import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
public class TypeStatementImpl extends AbstractDeclaredStatement<String>
implements TypeStatement {
+ private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(Rfc6020Mapping
+ .TYPE)
+ .add(Rfc6020Mapping.BASE, 0, 1)
+ .add(Rfc6020Mapping.BIT, 0, MAX)
+ .add(Rfc6020Mapping.ENUM, 0, MAX)
+ .add(Rfc6020Mapping.FRACTION_DIGITS, 0, 1)
+ .add(Rfc6020Mapping.LENGTH, 0, 1)
+ .add(Rfc6020Mapping.PATH, 0, 1)
+ .add(Rfc6020Mapping.PATTERN, 0, MAX)
+ .add(Rfc6020Mapping.RANGE, 0, 1)
+ .add(Rfc6020Mapping.REQUIRE_INSTANCE, 0, 1)
+ .add(Rfc6020Mapping.TYPE, 0, MAX)
+ .build();
protected TypeStatementImpl(final StmtContext<String, TypeStatement, ?> context) {
super(context);
public void onFullDefinitionDeclared(
final Mutable<String, TypeStatement, EffectiveStatement<String, TypeStatement>> stmt)
throws SourceException {
+ SUBSTATEMENT_VALIDATOR.validate(stmt);
// if it is yang built-in type, no prerequisite is needed, so simply return
if (TypeUtils.isYangBuiltInTypeString(stmt.getStatementArgument())) {
public String getName() {
return argument();
}
-}
+}
\ No newline at end of file