Interface EffectiveStatement<A,D extends DeclaredStatement<A>>

Type Parameters:
A - Argument type (Empty if statement does not have argument.)
D - Class representing declared version of this statement.
All Superinterfaces:
ModelStatement<A>
All Known Subinterfaces:
ActionEffectiveStatement, ActionNodeContainerCompat<A,D,E>, AliasEffectiveStatement, AnnotationEffectiveStatement, AnydataEffectiveStatement, AnyxmlEffectiveStatement, ArgumentEffectiveStatement, AugmentEffectiveStatement, AugmentIdentifierEffectiveStatement, BaseEffectiveStatement, BelongsToEffectiveStatement, BitEffectiveStatement, CaseEffectiveStatement, ChoiceEffectiveStatement, ConfigEffectiveStatement, ContactEffectiveStatement, ContainerEffectiveStatement, ContextInstanceEffectiveStatement, ContextReferenceEffectiveStatement, DataTreeAwareEffectiveStatement<A,D>, DataTreeEffectiveStatement<D>, DefaultDenyAllEffectiveStatement, DefaultDenyWriteEffectiveStatement, DefaultEffectiveStatement, DefValEffectiveStatement, DescriptionEffectiveStatement, DeviateEffectiveStatement, DeviationEffectiveStatement, DisplayHintEffectiveStatement, EffectiveStatementMixins.ActionNodeContainerMixin<A,D>, EffectiveStatementMixins.AddedByUsesMixin<A,D>, EffectiveStatementMixins.AugmentationTargetMixin<A,D>, EffectiveStatementMixins.ConstraintMetaDefinitionMixin<A,D>, EffectiveStatementMixins.CopyableMixin<A,D>, EffectiveStatementMixins.DataNodeContainerMixin<A,D>, EffectiveStatementMixins.DataSchemaNodeMixin<D>, EffectiveStatementMixins.DocumentedNodeMixin<A,D>, EffectiveStatementMixins.DocumentedNodeMixin.WithStatus<A,D>, EffectiveStatementMixins.EffectiveStatementWithFlags<A,D>, EffectiveStatementMixins.MandatoryMixin<A,D>, org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.Mixin<A,D>, EffectiveStatementMixins.MustConstraintMixin<A,D>, EffectiveStatementMixins.NotificationNodeContainerMixin<A,D>, EffectiveStatementMixins.OpaqueDataSchemaNodeMixin<D>, EffectiveStatementMixins.OperationContainerMixin<D>, EffectiveStatementMixins.OperationDefinitionMixin<D>, EffectiveStatementMixins.PresenceMixin<A,D>, EffectiveStatementMixins.SchemaNodeMixin<D>, EffectiveStatementMixins.UnknownSchemaNodeMixin<A,D>, EffectiveStatementMixins.UserOrderedAwareMixin<A,D,E>, EffectiveStatementMixins.WhenConditionMixin<A,D>, EnumEffectiveStatement, ErrorAppTagEffectiveStatement, ErrorMessageEffectiveStatement, ExtensionEffectiveStatement, FeatureEffectiveStatement, FractionDigitsEffectiveStatement, GetFilterElementAttributesEffectiveStatement, GroupingEffectiveStatement, IdentityEffectiveStatement, IfFeatureEffectiveStatement, ImpliedEffectiveStatement, ImportEffectiveStatement, IncludeEffectiveStatement, InputEffectiveStatement, InstanceTargetEffectiveStatement, KeyEffectiveStatement, LeafEffectiveStatement, LeafListEffectiveStatement, LengthEffectiveStatement, ListEffectiveStatement, MandatoryEffectiveStatement, MaxAccessEffectiveStatement, MaxElementsEffectiveStatement, MinElementsEffectiveStatement, ModifierEffectiveStatement, ModuleEffectiveStatement, ModuleTagEffectiveStatement, MountEffectiveStatement, MountPointEffectiveStatement, MustEffectiveStatement, NamespacedEffectiveStatement<D>, NamespaceEffectiveStatement, NotificationEffectiveStatement, NotificationNodeContainerCompat<A,D,E>, OidEffectiveStatement, OpenConfigHashedValueEffectiveStatement, OpenConfigPosixPatternEffectiveStatement, OpenConfigRegexpPosixEffectiveStatement, OpenConfigVersionEffectiveStatement, OrderedByAwareEffectiveStatement<A,D>, OrderedByEffectiveStatement, OrganizationEffectiveStatement, OutputEffectiveStatement, PathEffectiveStatement, PatternEffectiveStatement, PositionEffectiveStatement, PrefixEffectiveStatement, PresenceEffectiveStatement, RangeEffectiveStatement, ReferenceEffectiveStatement, RefineEffectiveStatement, RequireInstanceEffectiveStatement, RevisionDateEffectiveStatement, RevisionEffectiveStatement, RpcContextReferenceEffectiveStatement, RpcEffectiveStatement, SchemaTreeAwareEffectiveStatement<A,D>, SchemaTreeEffectiveStatement<D>, StatusEffectiveStatement, SubIdEffectiveStatement, SubmoduleEffectiveStatement, SubscriptionStateNotificationEffectiveStatement, TypedefEffectiveStatement, TypeEffectiveStatement<T>, UniqueEffectiveStatement, UnitsEffectiveStatement, UnknownEffectiveStatement<A,D>, UsesEffectiveStatement, ValueEffectiveStatement, WhenEffectiveStatement, YangDataEffectiveStatement, YangVersionEffectiveStatement, YinElementEffectiveStatement
All Known Implementing Classes:
AbstractChoiceEffectiveStatement, AbstractContainerEffectiveStatement, AbstractDeclaredEffectiveStatement, AbstractDeclaredEffectiveStatement.Default, AbstractDeclaredEffectiveStatement.DefaultArgument, AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements, AbstractDeclaredEffectiveStatement.DefaultWithArgument, AbstractDeclaredEffectiveStatement.DefaultWithArgument.WithSubstatements, AbstractDeclaredEffectiveStatement.DefaultWithDataTree, AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithTypedefNamespace, AbstractDeclaredEffectiveStatement.DefaultWithSchemaTree, AbstractDeclaredEffectiveStatement.WithDataTree, AbstractDeclaredEffectiveStatement.WithSchemaTree, AbstractEffectiveModule, AbstractEffectiveStatement, AbstractEffectiveUnknownSchmemaNode, AbstractGroupingEffectiveStatement, AbstractLeafEffectiveStatement, AbstractUndeclaredEffectiveStatement, AbstractUndeclaredEffectiveStatement.DefaultWithDataTree, AbstractUndeclaredEffectiveStatement.DefaultWithSchemaTree, AbstractUndeclaredEffectiveStatement.WithDataTree, AbstractUndeclaredEffectiveStatement.WithSchemaTree, ActionEffectiveStatementImpl, AugmentEffectiveStatementImpl, DeclaredCaseEffectiveStatement, DeclaredInputEffectiveStatement, DeclaredOutputEffectiveStatement, DeviateEffectiveStatementImpl, DeviationEffectiveStatementImpl, EmptyAnydataEffectiveStatement, EmptyAnyxmlEffectiveStatement, EmptyArgumentEffectiveStatement, EmptyBaseEffectiveStatement, EmptyBelongsToEffectiveStatement, EmptyBitEffectiveStatement, EmptyChoiceEffectiveStatement, EmptyConfigEffectiveStatement, EmptyContactEffectiveStatement, EmptyContainerEffectiveStatement, EmptyDefaultEffectiveStatement, EmptyDescriptionEffectiveStatement, EmptyEnumEffectiveStatement, EmptyErrorAppTagEffectiveStatement, EmptyErrorMessageEffectiveStatement, EmptyFeatureEffectiveStatement, EmptyForeignKeyEffectiveStatement, EmptyFractionDigitsEffectiveStatement, EmptyGroupingEffectiveStatement, EmptyIdentityEffectiveStatement, EmptyIfFeatureEffectiveStatement, EmptyIncludeEffectiveStatement, EmptyLeafEffectiveStatement, EmptyLeafListEffectiveStatement, EmptyLengthEffectiveStatement, EmptyListEffectiveStatement, EmptyLocalKeyEffectiveStatement, EmptyMandatoryEffectiveStatement, EmptyMaxElementsEffectiveStatement, EmptyMinElementsEffectiveStatement, EmptyModifierEffectiveStatement, EmptyMustEffectiveStatement, EmptyNamespaceEffectiveStatement, EmptyOrderedByEffectiveStatement, EmptyOrganizationEffectiveStatement, EmptyPathEffectiveStatement, EmptyPatternEffectiveStatement, EmptyPositionEffectiveStatement, EmptyPrefixEffectiveStatement, EmptyPresenceEffectiveStatement, EmptyRangeEffectiveStatement, EmptyReferenceEffectiveStatement, EmptyRequireInstanceEffectiveStatement, EmptyRevisionDateEffectiveStatement, EmptyRevisionEffectiveStatement, EmptyStatusEffectiveStatement, EmptyUniqueEffectiveStatement, EmptyUnitsEffectiveStatement, EmptyValueEffectiveStatement, EmptyWhenEffectiveStatement, EmptyYangVersionEffectiveStatement, EmptyYinElementEffectiveStatement, ExtensionEffectiveStatementImpl, ImportEffectiveStatementImpl, NotificationEffectiveStatementImpl, RefineEffectiveStatementImpl, RegularAnydataEffectiveStatement, RegularAnyxmlEffectiveStatement, RegularArgumentEffectiveStatement, RegularBaseEffectiveStatement, RegularBelongsToEffectiveStatement, RegularBitEffectiveStatement, RegularChoiceEffectiveStatement, RegularConfigEffectiveStatement, RegularContactEffectiveStatement, RegularContainerEffectiveStatement, RegularDefaultEffectiveStatement, RegularDescriptionEffectiveStatement, RegularEnumEffectiveStatement, RegularErrorAppTagEffectiveStatement, RegularErrorMessageEffectiveStatement, RegularFeatureEffectiveStatement, RegularForeignKeyEffectiveStatement, RegularFractionDigitsEffectiveStatement, RegularGroupingEffectiveStatement, RegularIdentityEffectiveStatement, RegularIfFeatureEffectiveStatement, RegularIncludeEffectiveStatement, RegularLeafEffectiveStatement, RegularLeafListEffectiveStatement, RegularLengthEffectiveStatement, RegularListEffectiveStatement, RegularLocalKeyEffectiveStatement, RegularMandatoryEffectiveStatement, RegularMaxElementsEffectiveStatement, RegularMinElementsEffectiveStatement, RegularModifierEffectiveStatement, RegularMustEffectiveStatement, RegularNamespaceEffectiveStatement, RegularOrderedByEffectiveStatement, RegularOrganizationEffectiveStatement, RegularPathEffectiveStatement, RegularPatternEffectiveStatement, RegularPositionEffectiveStatement, RegularPrefixEffectiveStatement, RegularPresenceEffectiveStatement, RegularRangeEffectiveStatement, RegularReferenceEffectiveStatement, RegularRequireInstanceEffectiveStatement, RegularRevisionDateEffectiveStatement, RegularRevisionEffectiveStatement, RegularStatusEffectiveStatement, RegularUniqueEffectiveStatement, RegularUnitsEffectiveStatement, RegularValueEffectiveStatement, RegularWhenEffectiveStatement, RegularYangVersionEffectiveStatement, RegularYinElementEffectiveStatement, RpcEffectiveStatementImpl, SlimLeafListEffectiveStatement, TypedefEffectiveStatementImpl, UndeclaredCaseEffectiveStatement, UndeclaredInputEffectiveStatement, UndeclaredLeafEffectiveStatement, UndeclaredOutputEffectiveStatement

public non-sealed interface EffectiveStatement<A,D extends DeclaredStatement<A>> extends ModelStatement<A>
Effective model statement which should be used to derive application behaviour.
  • Method Details

    • statementOrigin

      default @NonNull StatementOrigin statementOrigin()
      Returns StatementOrigin, which denotes if statement was explicitly declared in original model or inferred during semantic processing of model.

      Implementations are required to return a StatementOrigin, consistent with getDeclared() nullness. This is what the default implementation does and hence this method should never be explicitly implemented -- unless there is significant cost to the getDeclared() implementation.

      Returns:
      statement origin.
    • getDeclared

      @Nullable D getDeclared()
      Returns statement, which was explicit declaration of this effective statement.
      Returns:
      statement, which was explicit declaration of this effective statement or null if statement was inferred from context.
    • get

      <K, V, N extends IdentifierNamespace<K, V>> @NonNull Optional<V> get(@NonNull Class<N> namespace, @NonNull K identifier)
      Returns value associated with supplied identifier.
      Type Parameters:
      K - Identifier type
      V - Value type
      N - Namespace identifier type
      Parameters:
      namespace - Namespace type
      identifier - Identifier of element.
      Returns:
      Value if present
    • getAll

      <K, V, N extends IdentifierNamespace<K, V>> @NonNull Map<K,V> getAll(@NonNull Class<N> namespace)
      Returns all local values from supplied namespace.
      Type Parameters:
      K - Identifier type
      V - Value type
      N - Namespace identifier type
      Parameters:
      namespace - Namespace type
      Returns:
      Key-value mappings, empty if the namespace does not exist.
      Throws:
      NullPointerException - if namespace is null
    • effectiveSubstatements

      @NonNull List<? extends @NonNull EffectiveStatement<?,?>> effectiveSubstatements()
      Returns a collection of all effective substatements.
      Returns:
      collection of all effective substatements.
    • findFirstEffectiveSubstatement

      @Beta default <T> Optional<T> findFirstEffectiveSubstatement(@NonNull Class<T> type)
      Find the first effective substatement of specified type.
      Type Parameters:
      T - substatement type
      Parameters:
      type - substatement type
      Returns:
      First effective substatement, or empty if no match is found.
    • findFirstEffectiveSubstatementArgument

      @Beta default <V, T extends EffectiveStatement<V, ?>> Optional<V> findFirstEffectiveSubstatementArgument(@NonNull Class<T> type)
      Find the first effective substatement of specified type and return its value.
      Type Parameters:
      T - substatement type
      V - substatement argument type
      Parameters:
      type - substatement type
      Returns:
      First effective substatement's argument, or empty if no match is found.
    • streamEffectiveSubstatements

      @Beta default <T extends EffectiveStatement<?, ?>> Stream<T> streamEffectiveSubstatements(@NonNull Class<T> type)
      Find all effective substatements of specified type and return them as a stream.
      Type Parameters:
      T - substatement type
      Parameters:
      type - substatement type
      Returns:
      A stream of all effective substatements of specified type.