Class AbstractDeclaredEffectiveStatement.DefaultArgument<A,D extends DeclaredStatement<A>>
- java.lang.Object
-
- org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement<A,D>
-
- org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.Default<A,D>
-
- org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument<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.DefaultArgument.WithSubstatements
,EmptyArgumentEffectiveStatement
,EmptyBaseEffectiveStatement
,EmptyBelongsToEffectiveStatement
,EmptyBitEffectiveStatement
,EmptyConfigEffectiveStatement
,EmptyContactEffectiveStatement
,EmptyDefaultEffectiveStatement
,EmptyDescriptionEffectiveStatement
,EmptyEnumEffectiveStatement
,EmptyErrorAppTagEffectiveStatement
,EmptyErrorMessageEffectiveStatement
,EmptyFractionDigitsEffectiveStatement
,EmptyIdentityEffectiveStatement
,EmptyIfFeatureEffectiveStatement
,EmptyIncludeEffectiveStatement
,EmptyLengthEffectiveStatement
,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
,RegularIdentityEffectiveStatement
- Enclosing class:
- AbstractDeclaredEffectiveStatement<A,D extends DeclaredStatement<A>>
public abstract static class AbstractDeclaredEffectiveStatement.DefaultArgument<A,D extends DeclaredStatement<A>> extends AbstractDeclaredEffectiveStatement.Default<A,D>
An extra building block on top ofAbstractDeclaredEffectiveStatement.Default
, which is wiringargument()
to the declared statement. This is mostly useful for arguments that are not subject to inference transformation -- for example Strings indescription
, etc. This explicitly is not true of statements which underwent namespace binding viauses
or similar.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements<A,D extends DeclaredStatement<A>>
-
Nested classes/interfaces inherited from class org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement
AbstractDeclaredEffectiveStatement.Default<A,D extends DeclaredStatement<A>>, AbstractDeclaredEffectiveStatement.DefaultArgument<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>>
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DefaultArgument(D declared)
protected
DefaultArgument(AbstractDeclaredEffectiveStatement.DefaultArgument<A,D> original)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MoreObjects.ToStringHelper
addToStringAttributes(MoreObjects.ToStringHelper helper)
A
argument()
Returns statement argument.protected static @NonNull ImmutableMap<QName,DataTreeEffectiveStatement<?>>
createDataTreeNamespace(Collection<SchemaTreeEffectiveStatement<?>> schemaTreeStatements, ImmutableMap<QName,SchemaTreeEffectiveStatement<?>> schemaTreeNamespace)
protected static @NonNull Map<QName,SchemaTreeEffectiveStatement<?>>
createSchemaTreeNamespace(Collection<? extends EffectiveStatement<?,?>> substatements)
Collection<? extends EffectiveStatement<?,?>>
effectiveSubstatements()
Returns a collection of all effective substatements.<K,V,N extends IdentifierNamespace<K,V>>
Optional<? extends V>get(Class<N> namespace, K identifier)
Returns value associated with supplied identifier.<K,V,N extends IdentifierNamespace<K,V>>
Map<K,V>getAll(Class<N> namespace)
Returns all local values from supplied namespace.protected <K,V,N extends IdentifierNamespace<K,V>>
Optional<? extends Map<K,V>>getNamespaceContents(@NonNull Class<N> namespace)
Return the statement-specific contents of specified namespace, if available.protected static @NonNull Object
maskList(ImmutableList<?> list)
Utility method for squashing singleton lists into single objects.protected static @NonNull Object
maskSet(ImmutableSet<?> set)
String
toString()
protected static @NonNull ImmutableList<? extends @NonNull EffectiveStatement<?,?>>
unmaskList(@NonNull Object masked)
Utility method for recovering singleton lists squashed bymaskList(ImmutableList)
.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<T>
unmaskSet(@NonNull Object masked, @NonNull Class<T> type)
-
Methods inherited from class org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.Default
getDeclared
-
Methods inherited from class org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement
statementOrigin
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement
findFirstEffectiveSubstatement, findFirstEffectiveSubstatementArgument, streamEffectiveSubstatements
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.meta.ModelStatement
statementDefinition
-
-
-
-
Constructor Detail
-
DefaultArgument
protected DefaultArgument(D declared)
-
DefaultArgument
protected DefaultArgument(AbstractDeclaredEffectiveStatement.DefaultArgument<A,D> original)
-
-
Method Detail
-
argument
public final A argument()
Description copied from interface:ModelStatement
Returns statement argument.- Returns:
- statement argument.
-
get
public final <K,V,N extends IdentifierNamespace<K,V>> Optional<? extends V> get(Class<N> namespace, K identifier)
Description copied from interface:EffectiveStatement
Returns value associated with supplied identifier.- Specified by:
get
in interfaceEffectiveStatement<A,D extends DeclaredStatement<A>>
- Type Parameters:
K
- Identifier typeV
- Value typeN
- Namespace identifier type- Parameters:
namespace
- Namespace typeidentifier
- Identifier of element.- Returns:
- Value if present
-
getAll
public final <K,V,N extends IdentifierNamespace<K,V>> Map<K,V> getAll(Class<N> namespace)
Description copied from interface:EffectiveStatement
Returns all local values from supplied namespace.- Specified by:
getAll
in interfaceEffectiveStatement<A,D extends DeclaredStatement<A>>
- Type Parameters:
K
- Identifier typeV
- Value typeN
- Namespace identifier type- Parameters:
namespace
- Namespace type- Returns:
- Key-value mappings, empty if the namespace does not exist.
-
effectiveSubstatements
public 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>>
- Returns:
- collection of all effective substatements.
-
getNamespaceContents
protected <K,V,N extends IdentifierNamespace<K,V>> Optional<? extends Map<K,V>> getNamespaceContents(@NonNull Class<N> namespace)
Return the statement-specific contents of specified namespace, if available.- Parameters:
namespace
- Requested namespace- Returns:
- Namespace contents, if available.
-
unmaskList
protected static final @NonNull ImmutableList<? extends @NonNull EffectiveStatement<?,?>> unmaskList(@NonNull Object masked)
Utility method for recovering singleton lists squashed bymaskList(ImmutableList)
.- Parameters:
masked
- list to unmask- Returns:
- Unmasked list
- Throws:
NullPointerException
- if masked is nullClassCastException
- if masked object does not match EffectiveStatement
-
createSchemaTreeNamespace
protected static @NonNull Map<QName,SchemaTreeEffectiveStatement<?>> createSchemaTreeNamespace(Collection<? extends EffectiveStatement<?,?>> substatements)
-
createDataTreeNamespace
protected static @NonNull ImmutableMap<QName,DataTreeEffectiveStatement<?>> createDataTreeNamespace(Collection<SchemaTreeEffectiveStatement<?>> schemaTreeStatements, ImmutableMap<QName,SchemaTreeEffectiveStatement<?>> schemaTreeNamespace)
-
addToStringAttributes
protected MoreObjects.ToStringHelper addToStringAttributes(MoreObjects.ToStringHelper helper)
-
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<T> unmaskSet(@NonNull Object masked, @NonNull Class<T> type)
-
-