Class AbstractEffectiveDocumentedNodeWithStatus<A,D extends DeclaredStatement<A>>
- java.lang.Object
-
- org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveStatement<A,D>
-
- org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement<A,D>
-
- org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveDocumentedNodeWithStatus<A,D>
-
- All Implemented Interfaces:
DocumentedNode
,DocumentedNode.WithStatus
,EffectiveStatement<A,D>
,ModelStatement<A>
,EffectiveStatementMixins.DocumentedNodeMixin<A,D>
- Direct Known Subclasses:
UnknownEffectiveStatementBase
@Beta public abstract class AbstractEffectiveDocumentedNodeWithStatus<A,D extends DeclaredStatement<A>> extends AbstractDeclaredEffectiveStatement<A,D> implements EffectiveStatementMixins.DocumentedNodeMixin<A,D>, DocumentedNode.WithStatus
A declaredAbstractEffectiveStatement
with DocumentedNode.WithStatus.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement
AbstractDeclaredEffectiveStatement.Default<A,D extends DeclaredStatement<A>>, AbstractDeclaredEffectiveStatement.DefaultArgument<A,D extends DeclaredStatement<A>>, AbstractDeclaredEffectiveStatement.DefaultDataNodeContainer<A,D extends DeclaredStatement<A>>, AbstractDeclaredEffectiveStatement.DefaultWithArgument<A,D extends DeclaredStatement<A>>, AbstractDeclaredEffectiveStatement.DefaultWithDataTree<A,D extends DeclaredStatement<A>,E extends DataTreeAwareEffectiveStatement<A,D>>, AbstractDeclaredEffectiveStatement.DefaultWithSchemaTree<A,D extends DeclaredStatement<A>,E extends SchemaTreeAwareEffectiveStatement<A,D>>, AbstractDeclaredEffectiveStatement.WithDataTree<A,D extends DeclaredStatement<A>,E extends DataTreeAwareEffectiveStatement<A,D>>, AbstractDeclaredEffectiveStatement.WithSchemaTree<A,D extends DeclaredStatement<A>,E extends SchemaTreeAwareEffectiveStatement<A,D>>
-
Nested classes/interfaces inherited from interface org.opendaylight.yangtools.yang.model.api.DocumentedNode
DocumentedNode.WithStatus
-
Nested classes/interfaces inherited from interface org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.DocumentedNodeMixin
EffectiveStatementMixins.DocumentedNodeMixin.WithStatus<A,D extends DeclaredStatement<A>>
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractEffectiveDocumentedNodeWithStatus(A argument, @NonNull D declared, @NonNull ImmutableList<? extends EffectiveStatement<?,?>> substatements)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Collection<T>
allSubstatementsOfType(Class<T> type)
A
argument()
Returns statement argument.Collection<? extends EffectiveStatement<?,?>>
effectiveSubstatements()
Returns a collection of all effective substatements.protected <R> R
firstSubstatementOfType(Class<?> type, Class<R> returnType)
protected <T> @Nullable T
firstSubstatementOfType(Class<T> type)
@NonNull D
getDeclared()
Returns statement, which was explicit declaration of this effective statement.Status
getStatus()
Returns status of the instance of the typeSchemaNode
.protected static @NonNull Object
maskList(ImmutableList<?> list)
Utility method for squashing singleton lists into single objects.protected static @NonNull Object
maskSet(ImmutableSet<?> set)
protected static <T> @NonNull ImmutableList<T>
unmaskList(@NonNull Object masked, @NonNull Class<T> type)
Utility method for recovering singleton lists squashed bymaskList(ImmutableList)
.protected static <T> @NonNull ImmutableSet<? extends T>
unmaskSet(@NonNull Object masked, @NonNull Class<T> type)
-
Methods inherited from class org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement
getStatementSource
-
Methods inherited from class org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveStatement
get, getAll, getNamespaceContents, unmaskList
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement
findFirstEffectiveSubstatement, findFirstEffectiveSubstatementArgument, get, getAll, streamEffectiveSubstatements
-
Methods inherited from interface org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.DocumentedNodeMixin
getDescription, getReference, getUnknownSchemaNodes
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.meta.ModelStatement
getStatementSource, statementDefinition
-
-
-
-
Constructor Detail
-
AbstractEffectiveDocumentedNodeWithStatus
protected AbstractEffectiveDocumentedNodeWithStatus(A argument, @NonNull D declared, @NonNull ImmutableList<? extends EffectiveStatement<?,?>> substatements)
-
-
Method Detail
-
argument
public final A argument()
Description copied from interface:ModelStatement
Returns statement argument.- Specified by:
argument
in interfaceModelStatement<A>
- Returns:
- statement argument or null if statement does not have argument.
-
getDeclared
public final @NonNull D getDeclared()
Description copied from interface:EffectiveStatement
Returns statement, which was explicit declaration of this effective statement.- Specified by:
getDeclared
in interfaceEffectiveStatement<A,D extends DeclaredStatement<A>>
- Specified by:
getDeclared
in classAbstractDeclaredEffectiveStatement<A,D extends DeclaredStatement<A>>
- Returns:
- statement, which was explicit declaration of this effective statement or null if statement was inferred from context.
-
effectiveSubstatements
public final Collection<? extends EffectiveStatement<?,?>> effectiveSubstatements()
Description copied from interface:EffectiveStatement
Returns a collection of all effective substatements.- Specified by:
effectiveSubstatements
in interfaceEffectiveStatement<A,D extends DeclaredStatement<A>>
- Overrides:
effectiveSubstatements
in classAbstractEffectiveStatement<A,D extends DeclaredStatement<A>>
- Returns:
- collection of all effective substatements.
-
allSubstatementsOfType
public final <T> Collection<T> allSubstatementsOfType(Class<T> type)
-
getStatus
public final Status getStatus()
Description copied from interface:DocumentedNode.WithStatus
Returns status of the instance of the typeSchemaNode
.- Specified by:
getStatus
in interfaceDocumentedNode.WithStatus
- Returns:
- status of this node which represents the argument of the YANG
status
substatement
-
firstSubstatementOfType
protected final <T> @Nullable T firstSubstatementOfType(Class<T> type)
-
firstSubstatementOfType
protected final <R> R firstSubstatementOfType(Class<?> type, Class<R> returnType)
-
maskList
protected static final @NonNull Object maskList(ImmutableList<?> list)
Utility method for squashing singleton lists into single objects. This is a CPU/mem trade-off, which we are usually willing to make: for the cost of an instanceof check we can save one object and re-create it when needed. The inverse operation is #unmaskSubstatements(Object)}.- Parameters:
list
- list to mask- Returns:
- Masked list
- Throws:
NullPointerException
- if list is null
-
unmaskList
protected static final <T> @NonNull ImmutableList<T> unmaskList(@NonNull Object masked, @NonNull Class<T> type)
Utility method for recovering singleton lists squashed bymaskList(ImmutableList)
.- Parameters:
masked
- list to unmask- Returns:
- Unmasked list
- Throws:
NullPointerException
- if any argument is nullClassCastException
- if masked object does not match expected class
-
maskSet
protected static final @NonNull Object maskSet(ImmutableSet<?> set)
-
unmaskSet
protected static final <T> @NonNull ImmutableSet<? extends T> unmaskSet(@NonNull Object masked, @NonNull Class<T> type)
-
-