Class AbstractInternedStatementSupport<A,D extends org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement<A>,E extends org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement<A,D>>

java.lang.Object
org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport<A,D,E>
org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport<A,D,E>
org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStatementSupport<A,D,E>
All Implemented Interfaces:
StatementFactory<A,D,E>
Direct Known Subclasses:
AbstractInternedStringStatementSupport

@Beta public abstract class AbstractInternedStatementSupport<A,D extends org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement<A>,E extends org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement<A,D>> extends AbstractStatementSupport<A,D,E>
A AbstractStatementSupport specialized for global interning. This base class is useful when the argument can be reasonably interned and it dominates the EffectiveStatement implementation. Typical examples include position and value statements, which typically do not have substatements and are based on simple types.

Note: use of this base class implies context-independence.

  • Constructor Details

    • AbstractInternedStatementSupport

      protected AbstractInternedStatementSupport(org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition publicDefinition, StatementSupport.StatementPolicy<A,D> policy, org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration config, @Nullable SubstatementValidator validator)
  • Method Details

    • createDeclared

      protected final D createDeclared(BoundStmtCtx<A> ctx, com.google.common.collect.ImmutableList<org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement<?>> substatements)
      Specified by:
      createDeclared in class AbstractStatementSupport<A,D extends org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement<A>,E extends org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement<A,D>>
    • createDeclared

      protected abstract @NonNull D createDeclared(@NonNull A argument, @NonNull com.google.common.collect.ImmutableList<org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement<?>> substatements)
    • createEmptyDeclared

      protected abstract @NonNull D createEmptyDeclared(@NonNull A argument)
    • createEffective

      protected final E createEffective(EffectiveStmtCtx.Current<A,D> stmt, com.google.common.collect.ImmutableList<? extends org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement<?,?>> substatements)
      Specified by:
      createEffective in class AbstractStatementSupport<A,D extends org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement<A>,E extends org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement<A,D>>
    • createEffective

      protected abstract @NonNull E createEffective(@NonNull D declared, @NonNull com.google.common.collect.ImmutableList<? extends org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement<?,?>> substatements)
    • createEmptyEffective

      protected abstract @NonNull E createEmptyEffective(@NonNull D declared)