Type Parameters:
A - Argument type (Empty if statement does not have argument.)
All Superinterfaces:
ModelStatement<A>
All Known Subinterfaces:
ActionStatement, ActionStatementAwareDeclaredStatement<A>, AnydataStatement, AnyxmlStatement, ArgumentStatement, AugmentStatement, BaseStatement, BelongsToStatement, BitStatement, CaseStatement, ChoiceStatement, ConfigStatement, ConfigStatementAwareDeclaredStatement<A>, ConstrainedDocumentedDeclaredStatement<T>, ConstrainedDocumentedDeclaredStatement.WithStatus<T>, ContactStatement, ContainerStatement, DataDefinitionAwareDeclaredStatement<A>, DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<A>, DataDefinitionStatement, DefaultStatement, DefaultStatementAwareDeclaredStatement, DescriptionStatement, DeviateStatement, DeviationStatement, DocumentedDeclaredStatement<T>, DocumentedDeclaredStatement.WithStatus<T>, EnumStatement, ErrorAppTagStatement, ErrorMessageStatement, ExtensionStatement, FeatureStatement, FractionDigitsStatement, GroupingStatement, IdentityStatement, IfFeatureAwareDeclaredStatement<A>, IfFeatureStatement, ImportStatement, IncludeStatement, InputStatement, KeyStatement, LeafListStatement, LeafStatement, LengthStatement, ListStatement, MandatoryStatement, MandatoryStatementAwareDeclaredStatement<T>, MaxElementsStatement, MinElementsStatement, ModifierStatement, ModuleStatement, MultipleElementsDeclaredStatement, MustStatement, MustStatementAwareDeclaredStatement<A>, NamespaceStatement, NotificationStatement, NotificationStatementAwareDeclaredStatement<A>, OperationDeclaredStatement, OrderedByStatement, OrganizationStatement, OutputStatement, PathStatement, PatternStatement, PositionStatement, PrefixStatement, PresenceStatement, RangeStatement, ReferenceStatement, RefineStatement, RequireInstanceStatement, RevisionDateStatement, RevisionStatement, RootDeclaredStatement, RpcStatement, StatusStatement, SubmoduleStatement, TypeAwareDeclaredStatement, TypedefStatement, TypeStatement, TypeStatement.BinarySpecification, TypeStatement.BitsSpecification, TypeStatement.Decimal64Specification, TypeStatement.EnumSpecification, TypeStatement.IdentityRefSpecification, TypeStatement.InstanceIdentifierSpecification, TypeStatement.LeafrefSpecification, TypeStatement.NumericalRestrictions, TypeStatement.StringRestrictions, TypeStatement.UnionSpecification, UniqueStatement, UnitsStatement, UnknownStatement<A>, UnrecognizedStatement, UsesStatement, ValueStatement, WhenStatement, WhenStatementAwareDeclaredStatement<A>, YangVersionStatement, YinElementStatement
All Known Implementing Classes:
AbstractDeclaredStatement

public non-sealed interface DeclaredStatement<A> extends ModelStatement<A>
Represents declared statement.
  • Method Details

    • rawArgument

      @Nullable String rawArgument()
      Returns statement argument as was present in original source.
      Returns:
      statement argument as was present in original source or null, if statement does not take argument.
    • declaredSubstatements

      @NonNull List<? extends DeclaredStatement<?>> declaredSubstatements()
      Returns collection of explicitly declared child statements, while preserving its original ordering from original source.
      Returns:
      Collection of statements, which were explicitly declared in source of model.
    • declaredSubstatements

      default <T extends DeclaredStatement<?>> @NonNull Collection<? extends T> declaredSubstatements(Class<T> type)
      Returns collection of explicitly declared child statements, while preserving its original ordering from original source.
      Type Parameters:
      T - substatement type
      Parameters:
      type - DeclaredStatement type
      Returns:
      Collection of statements, which were explicitly declared in source of model.
      Throws:
      NullPointerException - if type is null
    • declarationReference

      @Beta default @NonNull Optional<DeclarationReference> declarationReference()
      Returns a DeclarationReference associated with this statement, if available.
      Returns:
      A DeclarationReference associated with this statement or Optional.empty().
      API Note:
      This method does not contribute any semantic information and is provided purely as a conduit for implementation-specific information where a statement instance came from.
      Implementation Requirements:
      The default implementation returns Optional.empty().
    • findFirstDeclaredSubstatement

      @Beta default <T extends DeclaredStatement<?>> @NonNull Optional<T> findFirstDeclaredSubstatement(@NonNull Class<T> type)
      Find the first effective substatement of specified type.
      Type Parameters:
      T - substatement type
      Parameters:
      type - DeclaredStatement type
      Returns:
      First declared substatement, or empty if no match is found.
      Throws:
      NullPointerException - if type is null
    • findFirstDeclaredSubstatementArgument

      @Beta default <V, T extends DeclaredStatement<V>> @NonNull Optional<V> findFirstDeclaredSubstatementArgument(@NonNull Class<T> type)
      Find the first declared substatement of specified type and return its value.
      Type Parameters:
      T - substatement type
      V - substatement argument type
      Parameters:
      type - DeclaredStatement type
      Returns:
      First declared substatement's argument, or empty if no match is found.
      Throws:
      NullPointerException - if type is null
    • streamDeclaredSubstatements

      @Beta default <T extends DeclaredStatement<?>> @NonNull Stream<T> streamDeclaredSubstatements(@NonNull Class<T> type)
      Find all declared substatements of specified type and return them as a stream.
      Type Parameters:
      T - substatement type
      Parameters:
      type - DeclaredStatement type
      Returns:
      A stream of all declared substatements of specified type.
      Throws:
      NullPointerException - if type is null