X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2Ftype%2FBuiltinTypeStatement.java;h=4769a781f868e461b4f56434d6645a04ce67d697;hb=a0c2b9c853d3d4d6e05701bf496631739f0e14ed;hp=36452729480b660e96a8cbc1401fbc64d6fcb433;hpb=c8668229ad6e73d5ae03a52f4b87e8e4d2a67c6e;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BuiltinTypeStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BuiltinTypeStatement.java index 3645272948..4769a781f8 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BuiltinTypeStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BuiltinTypeStatement.java @@ -9,17 +9,14 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type; import static java.util.Objects.requireNonNull; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap.Builder; -import java.util.Collection; -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; -import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithRawStringArgument; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -final class BuiltinTypeStatement implements TypeStatement { +final class BuiltinTypeStatement extends WithRawStringArgument implements TypeStatement { private static final ImmutableMap BUILTINS; static { @@ -44,46 +41,11 @@ final class BuiltinTypeStatement implements TypeStatement { builder.put(argument, new BuiltinTypeStatement(argument)); } - private final String argument; - - private BuiltinTypeStatement(final String argument) { - this.argument = requireNonNull(argument); - } - - static TypeStatement maybeReplace(final TypeStatementImpl orig) { - if (orig.declaredSubstatements().isEmpty() && orig.getStatementSource() == StatementSource.DECLARATION - && orig.statementDefinition() == YangStmtMapping.TYPE) { - final BuiltinTypeStatement builtin = BUILTINS.get(orig.argument()); - if (builtin != null) { - return builtin; - } - } - - return orig; - } - - @Override - public String argument() { - return argument; - } - - @Override - public String rawArgument() { - return argument; - } - - @Override - public Collection> declaredSubstatements() { - return ImmutableList.of(); - } - - @Override - public StatementDefinition statementDefinition() { - return YangStmtMapping.TYPE; + private BuiltinTypeStatement(final String rawArgument) { + super(requireNonNull(rawArgument)); } - @Override - public StatementSource getStatementSource() { - return StatementSource.DECLARATION; + static @Nullable TypeStatement lookup(final StmtContext ctx) { + return BUILTINS.get(ctx.getArgument()); } }