Class AbstractDeclaredEffectiveStatement<A,D extends DeclaredStatement<A>>
java.lang.Object
org.opendaylight.yangtools.yang.model.api.meta.AbstractEffectiveStatement<A,D>
org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement<A,D>
- Type Parameters:
A
- Argument type (Empty
if statement does not have argument.)D
- Class representing declared version of this statement.
- All Implemented Interfaces:
EffectiveStatement<A,
,D> ModelStatement<A>
- Direct Known Subclasses:
AbstractDeclaredEffectiveStatement.Default
,AbstractDeclaredEffectiveStatement.WithSchemaTree
,AbstractEffectiveUnknownSchmemaNode
@Beta
public abstract non-sealed class AbstractDeclaredEffectiveStatement<A,D extends DeclaredStatement<A>>
extends AbstractEffectiveStatement<A,D>
Base stateless superclass for statements which (logically) always have an associated
DeclaredStatement
. This
is notably not true for all case
statements, some of which may actually be implied.
Note implementations are not strictly required to make the declared statement available, they are free to throw
UnsupportedOperationException
from getDeclared()
, rendering any services relying on declared
statement to be not available.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A stateful version ofAbstractDeclaredEffectiveStatement
, which holds (and requires) a declared statement.static class
An extra building block on top ofAbstractDeclaredEffectiveStatement.Default
, which is wiringAbstractDeclaredEffectiveStatement.DefaultArgument.argument()
to the declared statement.static class
A building block on top ofAbstractDeclaredEffectiveStatement.Default
, which adds an explicit argument value, which is not related to the context.static class
Stateful version ofAbstractDeclaredEffectiveStatement.WithDataTree
.static class
Stateful version ofAbstractDeclaredEffectiveStatement.WithSchemaTree
.static class
Base stateless superclass forDataTreeAwareEffectiveStatement
s.static class
Base stateless superclass formSchemaTreeAwareEffectiveStatement
s. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected MoreObjects.ToStringHelper
protected static @NonNull Map
<QName, DataTreeEffectiveStatement<?>> createDataTreeNamespace
(Collection<SchemaTreeEffectiveStatement<?>> schemaTreeStatements, Map<QName, SchemaTreeEffectiveStatement<?>> schemaTreeNamespace) protected static @NonNull Map
<QName, SchemaTreeEffectiveStatement<?>> createSchemaTreeNamespace
(Collection<? extends EffectiveStatement<?, ?>> substatements) Create a Map containing the contents of the schema tree.protected static @NonNull HashMap
<QName, TypedefEffectiveStatement> createTypedefNamespace
(Collection<? extends EffectiveStatement<?, ?>> substatements) ImmutableList
<? extends EffectiveStatement<?, ?>> Returns a collection of all effective substatements.final boolean
abstract @NonNull D
Returns statement, which was explicit declaration of this effective statement.final int
hashCode()
protected static <T extends SchemaTreeEffectiveStatement<?>>
@NonNull Map<QName, T> immutableNamespaceOf
(Map<QName, T> map) protected static final @NonNull Object
maskList
(ImmutableList<?> list) Utility method for squashing singleton lists into single objects.protected static final @NonNull Object
maskSet
(ImmutableSet<?> set) final String
toString()
protected static final <T> @NonNull ImmutableList
<T> unmaskList
(@NonNull Object masked, @NonNull Class<T> type) Utility method for recovering singleton lists squashed bymaskList(ImmutableList)
.protected static final <T> @NonNull ImmutableSet
<T> Methods inherited from class org.opendaylight.yangtools.yang.model.api.meta.AbstractEffectiveStatement
filterOptional, findValue, unmaskList
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement
collectEffectiveSubstatements, findFirstEffectiveSubstatement, findFirstEffectiveSubstatementArgument, statementOrigin, streamEffectiveSubstatements
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.meta.ModelStatement
argument, statementDefinition
-
Constructor Details
-
AbstractDeclaredEffectiveStatement
public AbstractDeclaredEffectiveStatement()
-
-
Method Details
-
getDeclared
Description copied from interface:EffectiveStatement
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.
-
effectiveSubstatements
Description copied from interface:EffectiveStatement
Returns a collection of all effective substatements.- Returns:
- collection of all effective substatements.
-
createSchemaTreeNamespace
protected static @NonNull Map<QName,SchemaTreeEffectiveStatement<?>> createSchemaTreeNamespace(Collection<? extends EffectiveStatement<?, ?>> substatements) Create a Map containing the contents of the schema tree. Retur- Parameters:
substatements
- Substatements to index- Returns:
- Index of the schema tree as a mutable Map
- Throws:
NullPointerException
- ifsubstatements
is null
-
createDataTreeNamespace
protected static @NonNull Map<QName,DataTreeEffectiveStatement<?>> createDataTreeNamespace(Collection<SchemaTreeEffectiveStatement<?>> schemaTreeStatements, Map<QName, SchemaTreeEffectiveStatement<?>> schemaTreeNamespace) -
immutableNamespaceOf
protected static <T extends SchemaTreeEffectiveStatement<?>> @NonNull Map<QName,T> immutableNamespaceOf(Map<QName, T> map) -
createTypedefNamespace
protected static @NonNull HashMap<QName,TypedefEffectiveStatement> createTypedefNamespace(Collection<? extends EffectiveStatement<?, ?>> substatements) -
hashCode
public final int hashCode() -
equals
-
toString
-
addToStringAttributes
-
maskList
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
-
unmaskSet
protected static final <T> @NonNull ImmutableSet<T> unmaskSet(@NonNull Object masked, @NonNull Class<T> type)
-