X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=parser%2Fyang-parser-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fspi%2Fmeta%2FStatementSupport.java;h=0cef4bc7b1dfa763c37d45cad948eeae4e74992e;hb=f0f4e353a3942eba8eb4c02f6d59d5266436e32a;hp=0db910ffaf15505e09b0fbd35900aad05b493ca3;hpb=083ef931709258bed6e0fede5eea7fe3f63ddecc;p=yangtools.git diff --git a/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java b/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java index 0db910ffaf..0cef4bc7b1 100644 --- a/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java +++ b/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java @@ -39,7 +39,7 @@ import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; * @param Effective Statement representation */ public abstract class StatementSupport, E extends EffectiveStatement> - implements StatementDefinition, StatementFactory { + implements StatementFactory { /** * A baseline class for implementing the {@link StatementFactory#canReuseCurrent(Current, Current, Collection)} * contract in a manner which is consistent with a statement's {@link CopyPolicy}. @@ -196,21 +196,20 @@ public abstract class StatementSupport, E exte } private final @NonNull StatementPolicy policy; - private final @NonNull StatementDefinition def; + private final @NonNull StatementDefinition publicDefinition; private final @NonNull CopyPolicy copyPolicy; @Beta protected StatementSupport(final StatementSupport delegate) { checkArgument(delegate != this); - this.def = delegate.def; + this.publicDefinition = delegate.publicDefinition; this.policy = delegate.policy; this.copyPolicy = delegate.copyPolicy; } @Beta protected StatementSupport(final StatementDefinition publicDefinition, final StatementPolicy policy) { - checkArgument(publicDefinition != this); - this.def = requireNonNull(publicDefinition); + this.publicDefinition = requireNonNull(publicDefinition); this.policy = requireNonNull(policy); this.copyPolicy = policy.copyPolicy; } @@ -225,7 +224,13 @@ public abstract class StatementSupport, E exte * @return public statement definition, which will be present in built statements. */ public final @NonNull StatementDefinition getPublicView() { - return def; + return publicDefinition; + } + + // Appropriate to most definitions + // Non-final for compatible extensions + public @NonNull StatementDefinition definition() { + return publicDefinition; } /** @@ -271,6 +276,12 @@ public abstract class StatementSupport, E exte return policy.canReuseCurrent(copy, current, substatements); } + @Override + public EffectiveStatementState extractEffectiveState(final E stmt) { + // Not implemented for most statements + return null; + } + /** * Parses textual representation of argument in object representation. * @@ -432,26 +443,16 @@ public abstract class StatementSupport, E exte return false; } - @Override - public final QName getStatementName() { - return def.getStatementName(); + public final @NonNull QName statementName() { + return publicDefinition.getStatementName(); } - @Override - public final Optional getArgumentDefinition() { - return def.getArgumentDefinition(); + public final @Nullable QName argumentName() { + return publicDefinition.getArgumentDefinition().map(ArgumentDefinition::getArgumentName).orElse(null); } - @Override - // Non-final for compatible extensions - public Class> getDeclaredRepresentationClass() { - return def.getDeclaredRepresentationClass(); - } - - @Override - // Non-final for compatible extensions - public Class> getEffectiveRepresentationClass() { - return def.getEffectiveRepresentationClass(); + public final @NonNull Optional getArgumentDefinition() { + return publicDefinition.getArgumentDefinition(); } /**