From 92fd7863510db42ec2dded626b4a15c9f07eeabe Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 2 Jul 2020 17:47:29 +0200 Subject: [PATCH] Reuse common superclass for BuiltinTypeStatement BuiltinTypeStatement duplicates pretty much all of its implementation from AbstractDeclaredStatement.WithRawStringArgument. Eliminate duplication, so we have less code to maintain. JIRA: YANGTOOLS-1065 Change-Id: Ib27fe7f19001c5ffd563dad41843e74a3539765d Signed-off-by: Robert Varga --- .../stmt/AbstractDeclaredStatement.java | 10 +++++- .../stmt/type/BuiltinTypeStatement.java | 32 +++---------------- 2 files changed, 13 insertions(+), 29 deletions(-) diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java index aa722d0dc5..8a713abe40 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java @@ -57,7 +57,11 @@ public abstract class AbstractDeclaredStatement extends AbstractModelStatemen private final String rawArgument; protected WithRawArgument(final StmtContext context) { - rawArgument = context.rawStatementArgument(); + this(context.rawStatementArgument()); + } + + protected WithRawArgument(final String rawArgument) { + this.rawArgument = rawArgument; } @Override @@ -119,6 +123,10 @@ public abstract class AbstractDeclaredStatement extends AbstractModelStatemen super(context); } + protected WithRawStringArgument(final String rawArgument) { + super(rawArgument); + } + @Override public final String argument() { return rawArgument(); 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 74fddd0c5f..e3130e0684 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,16 +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.StatementSource; import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithRawStringArgument; -final class BuiltinTypeStatement implements TypeStatement { +final class BuiltinTypeStatement extends WithRawStringArgument implements TypeStatement { private static final ImmutableMap BUILTINS; static { @@ -43,10 +41,8 @@ final class BuiltinTypeStatement implements TypeStatement { builder.put(argument, new BuiltinTypeStatement(argument)); } - private final String argument; - - private BuiltinTypeStatement(final String argument) { - this.argument = requireNonNull(argument); + private BuiltinTypeStatement(final String rawArgument) { + super(requireNonNull(rawArgument)); } static TypeStatement maybeReplace(final TypeStatementImpl orig) { @@ -60,24 +56,4 @@ final class BuiltinTypeStatement implements TypeStatement { return orig; } - - @Override - public String argument() { - return argument; - } - - @Override - public String rawArgument() { - return argument; - } - - @Override - public Collection> declaredSubstatements() { - return ImmutableList.of(); - } - - @Override - public StatementSource getStatementSource() { - return StatementSource.DECLARATION; - } } -- 2.36.6