*/
package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
+import java.util.Optional;
import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.UnknownEffectiveStatementImpl;
public class UnknownStatementImpl extends AbstractDeclaredStatement<String> implements UnknownStatement<String> {
super(context);
}
- public static class Definition
- extends
+ public static class Definition extends
AbstractStatementSupport<String, UnknownStatement<String>, EffectiveStatement<String, UnknownStatement<String>>> {
public Definition(final StatementDefinition publicDefinition) {
}
@Override
- public String parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) throws SourceException {
+ public String parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
return value;
}
final StmtContext<String, UnknownStatement<String>, EffectiveStatement<String, UnknownStatement<String>>> ctx) {
return new UnknownEffectiveStatementImpl(ctx);
}
+
+ @Override
+ protected SubstatementValidator getSubstatementValidator() {
+ return null;
+ }
+
+ @Override
+ public Optional<StatementDefinitionContext<?, ?, ?>> getUnknownStatementDefinitionOf(
+ final StatementDefinitionContext<?, ?, ?> yangStmtDef) {
+ final QName baseQName = getStatementName();
+ return Optional.of(new StatementDefinitionContext<>(
+ new ModelDefinedStatementSupport(new ModelDefinedStatementDefinition(
+ QName.create(baseQName, yangStmtDef.getStatementName().getLocalName()),
+ yangStmtDef.hasArgument()
+ ? QName.create(baseQName, yangStmtDef.getArgumentName().getLocalName()) : null,
+ yangStmtDef.isArgumentYinElement()))));
+ }
}
@Nullable
@Override
public String getArgument() {
- return rawArgument();
+ return argument();
}
}