Package com.evolveum.midpoint.prism
Interface LocalItemDefinitionStore
-
- All Known Subinterfaces:
AttributeContainerDefinitionDelegator,AttributeDefinitionStore,ComplexTypeDefinition,ComplexTypeDefinitionDelegator,CompositeObjectDefinition,CompositeObjectDefinitionDelegator,ContainerDefinitionDelegator<C>,MutableComplexTypeDefinition,MutablePrismContainerDefinition<C>,MutablePrismObjectDefinition<O>,MutableResourceObjectClassDefinition,ObjectDefinitionDelegator<O>,PrismContainerDefinition<C>,PrismContainerWrapper<C>,PrismObjectDefinition<O>,PrismObjectWrapper<O>,ResourceAttributeContainerDefinition,ResourceObjectClassDefinition,ResourceObjectClassDefinitionDelegator,ResourceObjectDefinition,ResourceObjectDefinitionDelegator,ResourceObjectTypeDefinition,ResourceObjectTypeDefinitionDelegator,ShadowWrapper
- All Known Implementing Classes:
AbstractResourceObjectDefinitionImpl,CaseWorkItemTypeWrapper,CompositeObjectDefinitionImpl,com.evolveum.midpoint.prism.impl.PrismContainerDefinitionImpl,PrismContainerWrapperImpl,PrismObjectWrapperImpl,ProfilingClassLoggerContainerWrapperImpl,ResourceAttributeContainerDefinitionImpl,ResourceAttributeMappingWrapper,ResourceObjectClassDefinitionImpl,ResourceObjectTypeDefinitionImpl,ResourceWrapper,ShadowAssociationWrapperImpl,ShadowWrapperImpl,ValueMetadataWrapperImpl
public interface LocalItemDefinitionStoreUsed 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
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default booleancontainsItemDefinition(@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)ReturnsPrismContainerDefinitioncorresponding to given path (rooted at this store).default <ID extends ItemDefinition<?>>
IDfindItemDefinition(@NotNull ItemPath path)ReturnsItemDefinitioncorresponding 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 localItemDefinitioncorresponding to given item name (in case-sensitive manner).default <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 <T> PrismPropertyDefinition<T>findPropertyDefinition(@NotNull ItemPath path)ReturnsPrismPropertyDefinitioncorresponding to given path (rooted at this store).default PrismReferenceDefinitionfindReferenceDefinition(@NotNull ItemPath path)ReturnsPrismReferenceDefinitioncorresponding to given path (rooted at this store).@NotNull Collection<? extends ItemDefinition<?>>getDefinitions()Returns all item definitions in this store.
-
-
-
Method Detail
-
getDefinitions
@NotNull @NotNull Collection<? extends ItemDefinition<?>> getDefinitions()
Returns all item definitions in this store.
-
findLocalItemDefinition
default <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.)
-
findLocalItemDefinition
default <ID extends ItemDefinition<?>> ID findLocalItemDefinition(@NotNull @NotNull QName name)
Returns the localItemDefinitioncorresponding 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
default <ID extends ItemDefinition<?>> ID findItemDefinition(@NotNull @NotNull ItemPath path)
ReturnsItemDefinitioncorresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.
-
findPropertyDefinition
default <T> PrismPropertyDefinition<T> findPropertyDefinition(@NotNull @NotNull ItemPath path)
ReturnsPrismPropertyDefinitioncorresponding to given path (rooted at this store). Tries the global resolution in the case of "any" content.
-
findReferenceDefinition
default PrismReferenceDefinition findReferenceDefinition(@NotNull @NotNull ItemPath path)
ReturnsPrismReferenceDefinitioncorresponding 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)
ReturnsPrismContainerDefinitioncorresponding 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
default boolean containsItemDefinition(@NotNull @NotNull QName itemName)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?
-
-