Package com.evolveum.midpoint.prism
Interface LocalItemDefinitionStore
- All Known Subinterfaces:
AttributeDefinitionStore
,ComplexTypeDefinition
,ComplexTypeDefinitionDelegator
,CompositeObjectDefinition
,CompositeObjectDefinitionDelegator
,ContainerDefinitionDelegator<C>
,ObjectDefinitionDelegator<O>
,PrismContainerDefinition<C>
,PrismContainerWrapper<C>
,PrismObjectDefinition<O>
,PrismObjectWrapper<O>
,ResourceObjectClassDefinition
,ResourceObjectClassDefinitionDelegator
,ResourceObjectDefinition
,ResourceObjectDefinitionDelegator
,ResourceObjectTypeDefinition
,ResourceObjectTypeDefinitionDelegator
,ShadowAssociationDefinition
,ShadowAssociationsComplexTypeDefinition
,ShadowAssociationsContainerDefinition
,ShadowAttributesComplexTypeDefinition
,ShadowAttributesContainerDefinition
,ShadowAttributesContainerDefinitionDelegator
,ShadowItemsComplexTypeDefinition
,ShadowWrapper
- All Known Implementing Classes:
AbstractResourceObjectDefinitionImpl
,AssignmentHolderWrapper
,AssociationAttributeMappingWrapper
,AssociationInboundExpressionWrapper
,AssociationMappingExpressionWrapper
,AssociationOutboundExpressionWrapper
,AuthenticationBehaviorWrapper
,CaseWorkItemTypeWrapper
,ComplexTypeDefinitionImpl
,CompositeObjectDefinitionImpl
,DummyPrismObjectDefinition
,ObjectTypeAttributeMappingWrapper
,PrismContainerDefinitionImpl
,PrismContainerWrapperImpl
,PrismObjectDefinitionImpl
,PrismObjectWrapperImpl
,PrismSchemaWrapper
,ProfilingClassLoggerContainerWrapperImpl
,ResourceObjectClassDefinitionImpl
,ResourceObjectTypeDefinitionImpl
,ResourceWrapper
,ShadowAssociationDefinitionImpl
,ShadowAssociationsContainerDefinitionImpl
,ShadowAssociationValueWrapper
,ShadowAssociationWrapperImpl
,ShadowAttributesContainerDefinitionImpl
,ShadowWrapperImpl
,TransformableComplexTypeDefinition
,TransformableContainerDefinition
,TransformableObjectDefinition
,ValueMetadataWrapperImpl
public interface LocalItemDefinitionStore
Used to retrieve item definition from 'local definition store' - i.e. store that contains definition(s)
related to one parent item.
Such stores are prism containers and complex types (and their subtypes like attribute containers or object class definitions).
Methods `findLocalItemDefinition(...)` never try to resolve item names globally in the schema registry.
On the other hand, path-based methods do that if they come across `xsd:any`-type container during the resolution.
Note: Although these methods can return null, they are not marked as `@Nullable`. It is because we want avoid false warnings
about possible NPEs when used e.g. to find definitions that certainly exist (like `c:user` etc).
TODO What to do with "ID extends ItemDefinition"? It looks pretty bad.
-
Method Summary
Modifier and TypeMethodDescriptiondefault boolean
containsItemDefinition
(@NotNull QName itemName) Returns true if the store contains a definition of an item with given name.default <C extends Containerable>
PrismContainerDefinition<C>findContainerDefinition
(@NotNull ItemPath path) ReturnsPrismContainerDefinition
corresponding to given path (rooted at this store).default <ID extends ItemDefinition<?>>
IDfindItemDefinition
(@NotNull ItemPath path) ReturnsItemDefinition
corresponding to given path (rooted at this store).<ID extends ItemDefinition<?>>
IDfindItemDefinition
(@NotNull ItemPath path, @NotNull Class<ID> clazz) Returns a definition of given type corresponding to given path (rooted at this store).default <ID extends ItemDefinition<?>>
IDfindLocalItemDefinition
(@NotNull QName name) Returns the localItemDefinition
corresponding to given item name (in case-sensitive manner).<ID extends ItemDefinition<?>>
IDfindLocalItemDefinition
(@NotNull QName name, @NotNull Class<ID> clazz, boolean caseInsensitive) Returns the local item definition corresponding to given item name (optionally case-insensitive) and definition class.default <ID extends ItemDefinition<?>>
IDfindLocalItemDefinitionByIteration
(@NotNull QName name, @NotNull Class<ID> clazz, boolean caseInsensitive) Do not override this method.default <T> PrismPropertyDefinition<T>
findPropertyDefinition
(@NotNull ItemPath path) ReturnsPrismPropertyDefinition
corresponding to given path (rooted at this store).default PrismReferenceDefinition
findReferenceDefinition
(@NotNull ItemPath path) ReturnsPrismReferenceDefinition
corresponding to given path (rooted at this store).@NotNull Collection<? extends ItemDefinition<?>>
Returns all item definitions in this store.
-
Method Details
-
getDefinitions
Returns all item definitions in this store. -
findLocalItemDefinition
<ID extends ItemDefinition<?>> ID findLocalItemDefinition(@NotNull @NotNull QName name, @NotNull @NotNull Class<ID> clazz, boolean caseInsensitive) Returns the local item definition corresponding to given item name (optionally case-insensitive) and definition class. Does not try to resolve items globally (in the case of "any" content). BEWARE: In the case of ambiguities, returns any suitable definition. (This may change.) -
findLocalItemDefinitionByIteration
default <ID extends ItemDefinition<?>> ID findLocalItemDefinitionByIteration(@NotNull @NotNull QName name, @NotNull @NotNull Class<ID> clazz, boolean caseInsensitive) Do not override this method. -
findLocalItemDefinition
Returns the localItemDefinition
corresponding to given item name (in case-sensitive manner). Does not try to resolve items globally (in the case of "any" content). Note: some implementors provide optimized implementations of this method. -
findItemDefinition
ReturnsItemDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content. -
findPropertyDefinition
ReturnsPrismPropertyDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content. -
findReferenceDefinition
ReturnsPrismReferenceDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content. -
findContainerDefinition
default <C extends Containerable> PrismContainerDefinition<C> findContainerDefinition(@NotNull @NotNull ItemPath path) ReturnsPrismContainerDefinition
corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content. -
findItemDefinition
<ID extends ItemDefinition<?>> ID findItemDefinition(@NotNull @NotNull ItemPath path, @NotNull @NotNull Class<ID> clazz) Returns a definition of given type corresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content. -
containsItemDefinition
Returns true if the store contains a definition of an item with given name. TODO what about global names? Current implementation resolves them, but is this expected by clients?
-