Interface MidpointFunctions
-
- All Known Implementing Classes:
MidpointFunctionsImpl
public interface MidpointFunctions
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
MidpointFunctions.TriggerCustomizer
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description <T extends ObjectType>
StringaddObject(PrismObject<T> newObject)
<T extends ObjectType>
StringaddObject(PrismObject<T> newObject, ModelExecuteOptions options)
<T extends ObjectType>
StringaddObject(T newObject)
<T extends ObjectType>
StringaddObject(T newObject, ModelExecuteOptions options)
default <O extends ObjectType>
voidaddRecomputeTrigger(PrismObject<O> object, Long timestamp)
<O extends ObjectType>
voidaddRecomputeTrigger(PrismObject<O> object, Long timestamp, MidpointFunctions.TriggerCustomizer triggerCustomizer)
default <O extends ObjectType>
voidaddRecomputeTrigger(O object, Long timestamp)
default <O extends ObjectType>
voidaddRecomputeTrigger(O object, Long timestamp, MidpointFunctions.TriggerCustomizer triggerCustomizer)
<T extends ObjectType>
voidapplyDefinition(T object)
@NotNull Collection<PrismValue>
collectAssignedFocusMappingsResults(@NotNull ItemPath path)
Returns all non-negative values from all focus mappings (targeted to given path) from all non-negative evaluated assignments.ExtensionType
collectExtensions(AssignmentPathType path, int startAt)
<F extends FocusType>
StringcomputeProjectionLifecycle(F focus, ShadowType shadow, ResourceType resource)
Default function used to compute projection lifecycle.<T> Integer
countAccounts(ResourceType resourceType, String attributeName, T attributeValue)
A variant ofcountAccounts(String, QName, Object)
.<T> Integer
countAccounts(ResourceType resourceType, QName attributeName, T attributeValue)
A variant ofcountAccounts(String, QName, Object)
.<T> Integer
countAccounts(String resourceOid, QName attributeName, T attributeValue)
Counts accounts having `attributeValue` of `attributeName`.<T extends ObjectType>
intcountObjects(Class<T> type, ObjectQuery query)
Count objects.<T extends ObjectType>
intcountObjects(Class<T> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options)
Count objects.String
createAccountActivationLink(UserType userType)
<T extends ObjectType>
TcreateEmptyObject(Class<T> type)
Creates empty prism object of specified type in memory.<T extends ObjectType>
TcreateEmptyObjectWithName(Class<T> type, PolyString name)
Creates empty prism object of specified type and with specified name in memory.<T extends ObjectType>
TcreateEmptyObjectWithName(Class<T> type, PolyStringType name)
Creates empty prism object of specified type and with specified name in memory.<T extends ObjectType>
TcreateEmptyObjectWithName(Class<T> type, String name)
Creates empty prism object of specified type and with specified name in memory.String
createInvitationLink(UserType userType)
String
createPasswordResetLink(UserType userType)
void
createRecomputeTrigger(Class<? extends ObjectType> type, String oid)
Goes directly to repository service.String
createRegistrationConfirmationLink(UserType userType)
@Nullable String
createWorkItemCompletionLink(@NotNull WorkItemId workItemId)
Returns a link where given work item can be completed.<T extends ObjectType>
voiddeleteObject(Class<T> type, String oid)
<T extends ObjectType>
voiddeleteObject(Class<T> type, String oid, ModelExecuteOptions options)
<C extends Containerable>
S_ItemEntrydeltaFor(Class<C> objectClass)
default String
describeResourceObjectSet(ResourceObjectSetType set)
Synonym fordescribeResourceObjectSetShort(ResourceObjectSetType)
, mainly for compatibility reasons.String
describeResourceObjectSetLong(ResourceObjectSetType set)
Returns longer version of human-readable description of the resource object set: .String
describeResourceObjectSetShort(ResourceObjectSetType set)
Short version ofdescribeResourceObjectSetLong(ResourceObjectSetType)
: .Object
executeAdHocProvisioningScript(ResourceType resource, String language, String code)
Object
executeAdHocProvisioningScript(String resourceOid, String language, String code)
void
executeChanges(ObjectDelta<? extends ObjectType>... deltas)
Execute the provided object deltas.void
executeChanges(Collection<ObjectDelta<? extends ObjectType>> deltas)
Execute the provided object deltas.void
executeChanges(Collection<ObjectDelta<? extends ObjectType>> deltas, ModelExecuteOptions options)
Execute the provided object deltas.TaskType
executeChangesAsynchronously(Collection<ObjectDelta<?>> deltas, ModelExecuteOptions options, String templateTaskOid)
TaskType
executeChangesAsynchronously(Collection<ObjectDelta<?>> deltas, ModelExecuteOptions options, String templateTaskOid, Task opTask, OperationResult result)
<F extends FocusType>
@NotNull List<F>findCandidateOwners(@NotNull Class<F> focusType, @NotNull ShadowType resourceObject, @NotNull String resourceOid, @NotNull ShadowKindType kind, @NotNull String intent)
Finds candidate owners using defined correlation rules.<O extends ObjectType>
ArchetypeTypegetArchetype(O object)
Deprecated.<O extends ObjectType>
StringgetArchetypeOid(O object)
Deprecated.@NotNull List<String>
getArchetypeOids(ObjectType object)
Returns a list of archetype OIDs for given object.<O extends ObjectType>
@NotNull List<ArchetypeType>getArchetypes(O object)
<T> @NotNull ResourceAttributeDefinition<T>
getAttributeDefinition(PrismObject<ResourceType> resource, String objectClassName, String attributeName)
<T> @NotNull ResourceAttributeDefinition<T>
getAttributeDefinition(PrismObject<ResourceType> resource, QName objectClassName, QName attributeName)
String
getChannel()
String
getConst(String name)
@Nullable CaseType
getCorrelationCaseForShadow(@Nullable ShadowType shadow)
Returns a correlation case for given shadow.OperationResult
getCurrentResult()
OperationResult
getCurrentResult(String operationName)
Task
getCurrentTask()
<F extends ObjectType>
ModelElementContext<F>getFocusContext()
default <F extends FocusType>
List<F>getFocusesByCorrelationRule(Class<F> type, String resourceOid, ShadowKindType kind, String intent, ShadowType shadow)
Deprecated.default ShadowType
getLinkedShadow(FocusType focus, ResourceType resource)
default ShadowType
getLinkedShadow(FocusType focus, ResourceType resource, boolean repositoryObjectOnly)
default ShadowType
getLinkedShadow(FocusType focus, String resourceOid)
default ShadowType
getLinkedShadow(FocusType focus, String resourceOid, boolean repositoryObjectOnly)
default ShadowType
getLinkedShadow(FocusType focus, String resourceOid, ShadowKindType kind, String intent)
ShadowType
getLinkedShadow(FocusType focus, String resourceOid, ShadowKindType kind, String intent, boolean repositoryObjectOnly)
Null values of resource oid, kind, and intent mean "any".default @NotNull List<ShadowType>
getLinkedShadows(FocusType focus, String resourceOid)
@NotNull List<ShadowType>
getLinkedShadows(FocusType focus, String resourceOid, boolean repositoryObjectOnly)
Collection<UserType>
getManagers(UserType user)
Collection<UserType>
getManagers(UserType user, String orgType, boolean allowSelf)
Collection<UserType>
getManagersByOrgType(UserType user, String orgType)
Collection<UserType>
getManagersOfOrg(String orgOid)
Collection<String>
getManagersOids(UserType user)
Collection<String>
getManagersOidsExceptUser(@NotNull Collection<ObjectReferenceType> userRefList)
Collection<String>
getManagersOidsExceptUser(UserType user)
<V extends PrismValue,D extends ItemDefinition<?>>
Mapping<V,D>getMapping()
List<UserType>
getMembers(String orgOid)
List<ObjectReferenceType>
getMembersAsReferences(String orgOid)
<F extends ObjectType>
ModelContext<F>getModelContext()
<T extends ObjectType>
TgetObject(Class<T> type, String oid)
Returns object for provided OID.<T extends ObjectType>
TgetObject(Class<T> type, String oid, Collection<SelectorOptions<GetOperationOptions>> options)
Returns object for provided OID.<O extends ObjectType,T>
List<O>getObjectsInConflictOnPropertyValue(O objectType, String propertyPathString, T propertyValue, boolean getAllConflicting)
@NotNull OptimizingTriggerCreator
getOptimizingTriggerCreator(long fireAfter, long safetyMargin)
OrgType
getOrgByName(String name)
OrgType
getOrgByOid(String oid)
Collection<String>
getOrgUnits(UserType user)
Collection<String>
getOrgUnits(UserType user, QName relation)
OrgType
getParentOrgByArchetype(ObjectType object, String archetypeOid)
Returns parent org of the specified object that have a specific archetype.OrgType
getParentOrgByOrgType(ObjectType object, String orgType)
Returns parent org of the specified object that have a specific orgType.Collection<OrgType>
getParentOrgs(ObjectType object)
Returns all parent orgs of the specified object.Collection<OrgType>
getParentOrgs(ObjectType object, String relation, String orgType)
Returns parent orgs of the specified object that have a specific relation and orgType.Collection<OrgType>
getParentOrgs(ObjectType object, QName relation, String orgType)
Returns parent orgs of the specified object that have a specific relation and orgType.Collection<OrgType>
getParentOrgsByRelation(ObjectType object, String relation)
Returns parent orgs of the specified object that have a specific relation.Collection<OrgType>
getParentOrgsByRelation(ObjectType object, QName relation)
Returns parent orgs of the specified object that have a specific relation.String
getPlaintext(ProtectedStringType user)
String
getPlaintextAccountPassword(ShadowType account)
String
getPlaintextAccountPasswordFromDelta(ObjectDelta<? extends ShadowType> delta)
String
getPlaintextUserPassword(FocusType user)
String
getPlaintextUserPasswordFromDeltas(List<ObjectDelta<? extends FocusType>> deltas)
MidPointPrincipal
getPrincipal()
Returns principal representing the user whose identity is used to execute the expression.String
getPrincipalOid()
Returns OID of the current principal.PrismContext
getPrismContext()
ModelProjectionContext
getProjectionContext()
Protector
getProtector()
RelationRegistry
getRelationRegistry()
RepositoryService
getRepositoryService()
ObjectDeltaType
getResourceDelta(ModelContext<?> context, String resourceOid)
Returns aggregated delta that is to be executed on a given resource.long
getSequenceCounter(String sequenceOid)
List<ShadowType>
getShadowsToActivate(Collection<? extends ModelProjectionContext> projectionContexts)
Used for account activation notifier to collect all shadows which are going to be activated.<O extends AssignmentHolderType>
@Nullable ArchetypeTypegetStructuralArchetype(O object)
Returns the structural archetype for the object, possibly `null`.UserType
getUserByOid(String oid)
CaseService
getWorkflowService()
default <O extends ObjectType>
booleanhasArchetype(O object, String archetypeOid)
<F extends ObjectType>
booleanhasLinkedAccount(String resourceOid)
boolean
isCurrentProjectionActivated()
Returns `true` if the current clockwork operation brings the projection into existence and being effectively enabled, i.e.boolean
isCurrentProjectionBeingDisabled()
Returns `true` if the current clockwork operation causes the current projection to have `administrativeState` switched to a disabled value (e.g.boolean
isCurrentProjectionBeingEnabled()
Returns `true` if the current clockwork operation causes the current projection to have `administrativeState` switched toActivationStatusType.ENABLED
.boolean
isCurrentProjectionDeactivated()
Returns `true` if the current clockwork operation deletes the projection or effectively disables it, i.e.boolean
isDirectlyAssigned(ObjectType target)
<F extends FocusType>
booleanisDirectlyAssigned(F focusType, ObjectType target)
<F extends FocusType>
booleanisDirectlyAssigned(F focus, String targetOid)
Returns `true` if `focus` has a `assignment` with `targetRef.OID` being equal to `targetOid`.boolean
isDirectlyAssigned(String targetOid)
default boolean
isEffectivelyEnabled(@Nullable ObjectType object)
Returns true if the object is effectively enabled.Boolean
isEvaluateNew()
Returns indication whether a script code is evaluating a new value.boolean
isFocusActivated()
Does the current clockwork operation bring the focus into existence and being effectively enabled? (So, previously it was either non-existent or effectively disabled.)boolean
isFocusDeactivated()
Does the current clockwork operation delete or effectively disable the focus? (So, previously it existed and was effectively enabled.)boolean
isFullShadow()
boolean
isManager(UserType user)
Returns true if user is a manager of any organizational unit.boolean
isManagerOf(UserType user, String orgOid)
Returns true if user is a manager of specified organizational unit.boolean
isManagerOfOrgType(UserType user, String orgType)
boolean
isMemberOf(UserType user, String orgOid)
boolean
isProjectionExists()
<T> boolean
isUniqueAccountValue(ResourceType resourceType, ShadowType shadowType, String attributeName, T attributeValue)
Checks if the value `attributeValue` of `attributeName` in given shadow is unique on given resource.<T> boolean
isUniquePropertyValue(ObjectType objectType, String propertyPathString, T propertyValue)
<T extends ObjectType>
voidmodifyObject(ObjectDelta<T> modifyDelta)
<T extends ObjectType>
voidmodifyObject(ObjectDelta<T> modifyDelta, ModelExecuteOptions options)
Map<String,String>
parseXmlToMap(String xml)
Returns a map from the translated xml attribute - value pairs.<F extends ObjectType>
ModelContext<F>previewChanges(Collection<ObjectDelta<? extends ObjectType>> deltas, ModelExecuteOptions options)
<F extends ObjectType>
ModelContext<F>previewChanges(Collection<ObjectDelta<? extends ObjectType>> deltas, ModelExecuteOptions options, OperationResult result)
<F extends FocusType>
voidrecompute(Class<F> type, String oid)
Recomputes focal object with the specified OID.ShadowType
resolveEntitlement(ShadowAssociationType shadowAssociationType)
<T extends ObjectType>
TresolveReference(ObjectReferenceType reference)
<T extends ObjectType>
TresolveReferenceIfExists(ObjectReferenceType reference)
<T extends ObjectType>
TsearchObjectByName(Class<T> type, PolyString name)
Search for objects by name.<T extends ObjectType>
TsearchObjectByName(Class<T> type, PolyStringType name)
Search for objects by name.<T extends ObjectType>
TsearchObjectByName(Class<T> type, String name)
Search for objects by name.<T extends ObjectType>
List<T>searchObjects(Class<T> type, ObjectQuery query)
Search for objects.<T extends ObjectType>
List<T>searchObjects(Class<T> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options)
Search for objects.<T extends ObjectType>
voidsearchObjectsIterative(Class<T> type, ObjectQuery query, ResultHandler<T> handler)
Search for objects in iterative fashion (using callback).<T extends ObjectType>
voidsearchObjectsIterative(Class<T> type, ObjectQuery query, ResultHandler<T> handler, Collection<SelectorOptions<GetOperationOptions>> options)
Search for objects in iterative fashion (using callback).<F extends FocusType>
PrismObject<F>searchShadowOwner(String accountOid)
Collection<PrismValue>
selectIdentityItemValues(@Nullable Collection<FocusIdentityType> identities, @Nullable FocusIdentitySourceType source, @NotNull ItemPath itemPath)
Selects specified values from all relevant identity data.TaskType
submitTaskFromTemplate(String templateTaskOid, List<Item<?,?>> extensionItems)
TaskType
submitTaskFromTemplate(String templateTaskOid, Map<QName,Object> extensionValues)
OperationResult
testResource(String resourceOid)
Test the resource connection and basic resource connector functionality.List<String>
toList(String... s)
String
translate(LocalizableMessage message)
String
translate(LocalizableMessage message, boolean useDefaultLocale)
Translates message parameter.String
translate(LocalizableMessageType message)
String
translate(LocalizableMessageType message, boolean useDefaultLocale)
Translates message parameter.String
translate(String key, Objects... args)
ModelContext<?>
unwrapModelContext(LensContextType lensContextType)
LensContextType
wrapModelContext(ModelContext<?> lensContext)
-
-
-
Field Detail
-
LOGGER
static final Trace LOGGER
-
-
Method Detail
-
createEmptyObject
<T extends ObjectType> T createEmptyObject(Class<T> type) throws SchemaException
Creates empty prism object of specified type in memory. This is used to construct Java instances of object before they are added to the repository.
Please note that this method constructs the object in memory only. If you intend to create an object in repository or on the resource you need to populate this object with data and then invoke the addObject or executeChanges method.
- Parameters:
type
- Class of the object to create- Returns:
- empty object in memory
- Throws:
SchemaException
- schema error instantiating the object (e.g. attempt to instantiate abstract type).
-
createEmptyObjectWithName
<T extends ObjectType> T createEmptyObjectWithName(Class<T> type, String name) throws SchemaException
Creates empty prism object of specified type and with specified name in memory. This is used to construct Java instances of object before they are added to the repository. The 'name' property of the new object will be set to a specified value.
Please note that this method constructs the object in memory only. If you intend to create an object in repository or on the resource you need to populate this object with data and then invoke the addObject or executeChanges method.
- Parameters:
type
- Class of the object to createname
- Name of the object- Returns:
- empty object in memory
- Throws:
SchemaException
- schema error instantiating the object (e.g. attempt to instantiate abstract type).
-
createEmptyObjectWithName
<T extends ObjectType> T createEmptyObjectWithName(Class<T> type, PolyString name) throws SchemaException
Creates empty prism object of specified type and with specified name in memory. This is used to construct Java instances of object before they are added to the repository. The 'name' property of the new object will be set to a specified value.
Please note that this method constructs the object in memory only. If you intend to create an object in repository or on the resource you need to populate this object with data and then invoke the addObject or executeChanges method.
- Parameters:
type
- Class of the object to createname
- Name of the object- Returns:
- empty object in memory
- Throws:
SchemaException
- schema error instantiating the object (e.g. attempt to instantiate abstract type).
-
createEmptyObjectWithName
<T extends ObjectType> T createEmptyObjectWithName(Class<T> type, PolyStringType name) throws SchemaException
Creates empty prism object of specified type and with specified name in memory. This is used to construct Java instances of object before they are added to the repository. The 'name' property of the new object will be set to a specified value.
Please note that this method constructs the object in memory only. If you intend to create an object in repository or on the resource you need to populate this object with data and then invoke the addObject or executeChanges method.
- Parameters:
type
- Class of the object to createname
- Name of the object- Returns:
- empty object in memory
- Throws:
SchemaException
- schema error instantiating the object (e.g. attempt to instantiate abstract type).
-
resolveReference
<T extends ObjectType> T resolveReference(ObjectReferenceType reference) throws ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
-
resolveReferenceIfExists
<T extends ObjectType> T resolveReferenceIfExists(ObjectReferenceType reference) throws SchemaException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
-
getObject
<T extends ObjectType> T getObject(Class<T> type, String oid, Collection<SelectorOptions<GetOperationOptions>> options) throws ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
Returns object for provided OID. It retrieves the object from an appropriate source for an object type (e.g. internal repository, resource or both), merging data as necessary, processing any policies, caching mechanisms, etc. This can be influenced by using options.
Fails if object with the OID does not exist.
- Parameters:
type
- (class) of an object to getoid
- OID of the object to getoptions
- options influencing the retrieval and processing of the object- Returns:
- Retrieved object
- Throws:
ObjectNotFoundException
- requested object does not existSchemaException
- the object is not schema compliantSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- missing required parameter, wrong OID format, etc.ClassCastException
- OID represents object of a type incompatible with requested typeSystemException
- unknown error from underlying layers or other unexpected stateExpressionEvaluationException
-
getObject
<T extends ObjectType> T getObject(Class<T> type, String oid) throws ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
Returns object for provided OID. It retrieves the object from an appropriate source for an object type (e.g. internal repository, resource or both), merging data as necessary, processing any policies, caching mechanisms, etc.
Fails if object with the OID does not exist.
- Parameters:
type
- (class) of an object to getoid
- OID of the object to get- Returns:
- Retrieved object
- Throws:
ObjectNotFoundException
- requested object does not existSchemaException
- the object is not schema compliantSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- missing required parameter, wrong OID format, etc.ClassCastException
- OID represents object of a type incompatible with requested typeSystemException
- unknown error from underlying layers or other unexpected stateExpressionEvaluationException
-
executeChanges
void executeChanges(Collection<ObjectDelta<? extends ObjectType>> deltas, ModelExecuteOptions options) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
Execute the provided object deltas.
The operation executes the provided object deltas. All deltas must relate to analogous objects (e.g. user and linked accounts). The implementation may throw an error if the objects are not analogous. The implementation also implicitly links the objects (mark them to be analogous) if such a link is part of the data model. E.g. the implementation links all accounts to the user if they are passed in a single delta collection. This is especially useful if the account deltas are ADD deltas without OID and therefore cannot be linked explicitly.
There must be no more than one delta for each object. The order of execution is not defined and the implementation is free to determine the correct or most suitable ordering.
The OID provided in ADD deltas may be empty. In that case the OID will be assigned by the implementation and the OIDs will be set in the deltas after the operation is completed.
Execution of ADD deltas should fail if such object already exists (if object with the provided OID already exists). Execution of MODIFY and DELETE deltas should fail if such objects do not exist.
The operation may fail if provided OIDs are in an unusable format for the storage. Generating own OIDs and providing them to this method is not recommended for normal operation.
There are no explicit atomicity guarantees for the operations. Some of the operations may pass, some may fail or even fail partially. The consistency of the data and state are not based on operation atomicity but rather a data model that can "repair" inconsistencies.
The operation may fail if any of the objects to be created or modified does not conform to the underlying schema of the storage system or the schema enforced by the implementation.
- Parameters:
deltas
- Collection of object deltas to executeoptions
- options influencing processing of the deltas- Throws:
ObjectAlreadyExistsException
- object with specified identifiers already exists, cannot addObjectNotFoundException
- object required to complete the operation was not found (e.g. appropriate connector or resource definition)SchemaException
- error dealing with resource schema, e.g. created object does not conform to schemaExpressionEvaluationException
- evaluation of expression associated with the object has failedCommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.PolicyViolationException
- Policy violation was detected during processing of the objectSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)IllegalArgumentException
- wrong OID format, etc.SystemException
- unknown error from underlying layers or other unexpected state
-
executeChanges
void executeChanges(Collection<ObjectDelta<? extends ObjectType>> deltas) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
Execute the provided object deltas.
The operation executes the provided object deltas. All deltas must relate to analogous objects (e.g. user and linked accounts). The implementation may throw an error if the objects are not analogous. The implementation also implicitly links the objects (mark them to be analogous) if such a link is part of the data model. E.g. the implementation links all accounts to the user if they are passed in a single delta collection. This is especially useful if the account deltas are ADD deltas without OID and therefore cannot be linked explicitly.
There must be no more than one delta for each object. The order of execution is not defined and the implementation is free to determine the correct or most suitable ordering.
The OID provided in ADD deltas may be empty. In that case the OID will be assigned by the implementation and the OIDs will be set in the deltas after the operation is completed.
Execution of ADD deltas should fail if such object already exists (if object with the provided OID already exists). Execution of MODIFY and DELETE deltas should fail if such objects do not exist.
The operation may fail if provided OIDs are in an unusable format for the storage. Generating own OIDs and providing them to this method is not recommended for normal operation.
There are no explicit atomicity guarantees for the operations. Some of the operations may pass, some may fail or even fail partially. The consistency of the data and state are not based on operation atomicity but rather a data model that can "repair" inconsistencies.
The operation may fail if any of the objects to be created or modified does not conform to the underlying schema of the storage system or the schema enforced by the implementation.
- Parameters:
deltas
- Collection of object deltas to execute- Throws:
ObjectAlreadyExistsException
- object with specified identifiers already exists, cannot addObjectNotFoundException
- object required to complete the operation was not found (e.g. appropriate connector or resource definition)SchemaException
- error dealing with resource schema, e.g. created object does not conform to schemaExpressionEvaluationException
- evaluation of expression associated with the object has failedCommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.PolicyViolationException
- Policy violation was detected during processing of the objectSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)IllegalArgumentException
- wrong OID format, etc.SystemException
- unknown error from underlying layers or other unexpected state
-
executeChanges
void executeChanges(ObjectDelta<? extends ObjectType>... deltas) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
Execute the provided object deltas.
The operation executes the provided object deltas. All deltas must relate to analogous objects (e.g. user and linked accounts). The implementation may throw an error if the objects are not analogous. The implementation also implicitly links the objects (mark them to be analogous) if such a link is part of the data model. E.g. the implementation links all accounts to the user if they are passed in a single delta collection. This is especially useful if the account deltas are ADD deltas without OID and therefore cannot be linked explicitly.
There must be no more than one delta for each object. The order of execution is not defined and the implementation is free to determine the correct or most suitable ordering.
The OID provided in ADD deltas may be empty. In that case the OID will be assigned by the implementation and the OIDs will be set in the deltas after the operation is completed.
Execution of ADD deltas should fail if such object already exists (if object with the provided OID already exists). Execution of MODIFY and DELETE deltas should fail if such objects do not exist.
The operation may fail if provided OIDs are in an unusable format for the storage. Generating own OIDs and providing them to this method is not recommended for normal operation.
There are no explicit atomicity guarantees for the operations. Some of the operations may pass, some may fail or even fail partially. The consistency of the data and state are not based on operation atomicity but rather a data model that can "repair" inconsistencies.
The operation may fail if any of the objects to be created or modified does not conform to the underlying schema of the storage system or the schema enforced by the implementation.
- Parameters:
deltas
- Collection of object deltas to execute- Throws:
ObjectAlreadyExistsException
- object with specified identifiers already exists, cannot addObjectNotFoundException
- object required to complete the operation was not found (e.g. appropriate connector or resource definition)SchemaException
- error dealing with resource schema, e.g. created object does not conform to schemaExpressionEvaluationException
- evaluation of expression associated with the object has failedCommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.PolicyViolationException
- Policy violation was detected during processing of the objectSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)IllegalArgumentException
- wrong OID format, etc.SystemException
- unknown error from underlying layers or other unexpected state
-
addObject
<T extends ObjectType> String addObject(PrismObject<T> newObject, ModelExecuteOptions options) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
addObject
<T extends ObjectType> String addObject(PrismObject<T> newObject) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
addObject
<T extends ObjectType> String addObject(T newObject, ModelExecuteOptions options) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
addObject
<T extends ObjectType> String addObject(T newObject) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
modifyObject
<T extends ObjectType> void modifyObject(ObjectDelta<T> modifyDelta, ModelExecuteOptions options) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
modifyObject
<T extends ObjectType> void modifyObject(ObjectDelta<T> modifyDelta) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
deleteObject
<T extends ObjectType> void deleteObject(Class<T> type, String oid, ModelExecuteOptions options) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
deleteObject
<T extends ObjectType> void deleteObject(Class<T> type, String oid) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException
-
recompute
<F extends FocusType> void recompute(Class<F> type, String oid) throws SchemaException, PolicyViolationException, ExpressionEvaluationException, ObjectNotFoundException, ObjectAlreadyExistsException, CommunicationException, ConfigurationException, SecurityViolationException
Recomputes focal object with the specified OID. The operation considers all the applicable policies and mapping and tries to re-apply them as necessary.- Parameters:
type
- type (class) of an object to recomputeoid
- OID of the object to recompute- Throws:
SchemaException
PolicyViolationException
ExpressionEvaluationException
ObjectNotFoundException
ObjectAlreadyExistsException
CommunicationException
ConfigurationException
SecurityViolationException
-
searchShadowOwner
<F extends FocusType> PrismObject<F> searchShadowOwner(String accountOid) throws ObjectNotFoundException, SecurityViolationException, SchemaException, ConfigurationException, ExpressionEvaluationException, CommunicationException
-
searchObjects
<T extends ObjectType> List<T> searchObjects(Class<T> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options) throws SchemaException, ObjectNotFoundException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
Search for objects.
Searches through all object of a specified type. Returns a list of objects that match search criteria.
Note that this method has a very limited scaling capability as all the results are stored in the memory. DO NOT USE on large datasets. Recommended usage is only when using queries that cannot return large number of results (e.g. queries for unique values) or when combined with paging capability. For other cases use searchObjectsIterative instead.
Returns empty list if object type is correct but there are no objects of that type. Fails if object type is wrong. Should fail if unknown property is specified in the query.
- Parameters:
type
- (class) of an object to searchquery
- search queryoptions
- options influencing the retrieval and processing of the objects- Returns:
- all objects of specified type that match search criteria (subject to paging)
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
searchObjects
<T extends ObjectType> List<T> searchObjects(Class<T> type, ObjectQuery query) throws SchemaException, ObjectNotFoundException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
Search for objects.
Searches through all object of a specified type. Returns a list of objects that match search criteria.
Note that this method has a very limited scaling capability as all the results are stored in the memory. DO NOT USE on large datasets. Recommended usage is only when using queries that cannot return large number of results (e.g. queries for unique values) or when combined with paging capability. For other cases use searchObjectsIterative instead.
Returns empty list if object type is correct but there are no objects of that type. Fails if object type is wrong. Should fail if unknown property is specified in the query.
- Parameters:
type
- (class) of an object to searchquery
- search query- Returns:
- all objects of specified type that match search criteria (subject to paging)
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
searchObjectsIterative
<T extends ObjectType> void searchObjectsIterative(Class<T> type, ObjectQuery query, ResultHandler<T> handler, Collection<SelectorOptions<GetOperationOptions>> options) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
Search for objects in iterative fashion (using callback).
Searches through all object of a specified type. A handler is invoked for each object found.
The handler is not called at all if object type is correct but there are no objects of that type. Fails if object type is wrong. Should fail if unknown property is specified in the query.
- Parameters:
type
- (class) of an object to searchquery
- search queryhandler
- callback handler that will be called for each found objectoptions
- options influencing the retrieval and processing of the objects- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
searchObjectsIterative
<T extends ObjectType> void searchObjectsIterative(Class<T> type, ObjectQuery query, ResultHandler<T> handler) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
Search for objects in iterative fashion (using callback).
Searches through all object of a specified type. A handler is invoked for each object found.
The handler is not called at all if object type is correct but there are no objects of that type. Fails if object type is wrong. Should fail if unknown property is specified in the query.
- Parameters:
type
- (class) of an object to searchquery
- search queryhandler
- callback handler that will be called for each found object- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
searchObjectByName
<T extends ObjectType> T searchObjectByName(Class<T> type, String name) throws SecurityViolationException, ObjectNotFoundException, CommunicationException, ConfigurationException, SchemaException, ExpressionEvaluationException
Search for objects by name.
Searches through all object of a specified type for an object with specified name. Returns that object if it is found, return null otherwise. The method fails if more than one object is found therefore it cannot be reliably used on types with non-unique names (such as Shadows).
- Parameters:
type
- (class) of an object to searchname
- Name of the object to look for- Returns:
- an object of specified type with a matching name or null
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
searchObjectByName
<T extends ObjectType> T searchObjectByName(Class<T> type, PolyString name) throws SecurityViolationException, ObjectNotFoundException, CommunicationException, ConfigurationException, SchemaException, ExpressionEvaluationException
Search for objects by name.
Searches through all object of a specified type for an object with specified name. Returns that object if it is found, return null otherwise. The method fails if more than one object is found therefore it cannot be reliably used on types with non-unique names (such as Shadows).
- Parameters:
type
- (class) of an object to searchname
- Name of the object to look for- Returns:
- an object of specified type with a matching name or null
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
searchObjectByName
<T extends ObjectType> T searchObjectByName(Class<T> type, PolyStringType name) throws SecurityViolationException, ObjectNotFoundException, CommunicationException, ConfigurationException, SchemaException, ExpressionEvaluationException
Search for objects by name.
Searches through all object of a specified type for an object with specified name. Returns that object if it is found, return null otherwise. The method fails if more than one object is found therefore it cannot be reliably used on types with non-unique names (such as Shadows).
- Parameters:
type
- (class) of an object to searchname
- Name of the object to look for- Returns:
- an object of specified type with a matching name or null
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
countObjects
<T extends ObjectType> int countObjects(Class<T> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options) throws SchemaException, ObjectNotFoundException, SecurityViolationException, ConfigurationException, CommunicationException, ExpressionEvaluationException
Count objects.
Searches through all object of a specified type and returns a count of such objects. This method is usually much more efficient than equivalent search method. It is used mostly for presentation purposes, e.g. displaying correct number of pages in the GUI listings.
- Parameters:
type
- (class) of an object to searchquery
- search queryoptions
- options influencing the retrieval and processing of the objects- Returns:
- number of objects of specified type that match search criteria (subject to paging)
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
countObjects
<T extends ObjectType> int countObjects(Class<T> type, ObjectQuery query) throws SchemaException, ObjectNotFoundException, SecurityViolationException, ConfigurationException, CommunicationException, ExpressionEvaluationException
Count objects.
Searches through all object of a specified type and returns a count of such objects. This method is usually much more efficient than equivalent search method. It is used mostly for presentation purposes, e.g. displaying correct number of pages in the GUI listings.
- Parameters:
type
- (class) of an object to searchquery
- search query- Returns:
- number of objects of specified type that match search criteria (subject to paging)
- Throws:
SchemaException
- unknown property used in search queryObjectNotFoundException
- object required for a search was not found (e.g. resource definition)CommunicationException
- Communication (network) error during retrieval. E.g. error communicating with the resourceSecurityViolationException
- Security violation during operation execution. May be caused either by midPoint internal security mechanism but also by external mechanism (e.g. on the resource)ConfigurationException
- Configuration error. E.g. misconfigured resource parameters, invalid policies, etc.IllegalArgumentException
- wrong query formatExpressionEvaluationException
-
testResource
OperationResult testResource(String resourceOid) throws ObjectNotFoundException, SchemaException, ConfigurationException
Test the resource connection and basic resource connector functionality.
This operation will NOT throw exception in case the resource connection fails. It such case it will indicate the failure in the return message, but the operation itself succeeds. The operations fails only if the provided arguments are wrong, in case of system error, system misconfiguration, etc.
This returns OperationResult instead of taking it as in/out argument. This is different from the other methods. The testResource method is not using OperationResult to track its own execution but rather to track the execution of resource tests (that in fact happen in provisioning).
- Parameters:
resourceOid
- OID of resource to test- Returns:
- results of executed tests
- Throws:
ObjectNotFoundException
- specified object does not existIllegalArgumentException
- wrong OID formatSchemaException
ConfigurationException
-
getSequenceCounter
long getSequenceCounter(String sequenceOid) throws ObjectNotFoundException, SchemaException
-
getManagersOids
Collection<String> getManagersOids(UserType user) throws SchemaException, ObjectNotFoundException, SecurityViolationException
-
getManagersOidsExceptUser
Collection<String> getManagersOidsExceptUser(UserType user) throws SchemaException, ObjectNotFoundException, SecurityViolationException, ExpressionEvaluationException
-
getManagersOidsExceptUser
Collection<String> getManagersOidsExceptUser(@NotNull @NotNull Collection<ObjectReferenceType> userRefList) throws SchemaException, ObjectNotFoundException, SecurityViolationException, CommunicationException, ExpressionEvaluationException, ConfigurationException
-
getManagers
Collection<UserType> getManagers(UserType user) throws SchemaException, ObjectNotFoundException, SecurityViolationException
-
getManagersByOrgType
Collection<UserType> getManagersByOrgType(UserType user, String orgType) throws SchemaException, ObjectNotFoundException, SecurityViolationException
-
getManagers
Collection<UserType> getManagers(UserType user, String orgType, boolean allowSelf) throws SchemaException, ObjectNotFoundException, SecurityViolationException
-
getUserByOid
UserType getUserByOid(String oid) throws ObjectNotFoundException, SchemaException
-
getOrgUnits
Collection<String> getOrgUnits(UserType user)
-
getOrgUnits
Collection<String> getOrgUnits(UserType user, QName relation)
-
getOrgByOid
OrgType getOrgByOid(String oid) throws SchemaException
- Throws:
SchemaException
-
getOrgByName
OrgType getOrgByName(String name) throws SchemaException, SecurityViolationException
-
getParentOrgs
Collection<OrgType> getParentOrgs(ObjectType object, String relation, String orgType) throws SchemaException, SecurityViolationException
Returns parent orgs of the specified object that have a specific relation and orgType.- Parameters:
object
- base objectrelation
- local part of the relation (in the String form)orgType
- orgType to select- Returns:
- parent orgs of the specified object that have a specific relation and orgType
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getParentOrgs
Collection<OrgType> getParentOrgs(ObjectType object, QName relation, String orgType) throws SchemaException, SecurityViolationException
Returns parent orgs of the specified object that have a specific relation and orgType.- Parameters:
object
- base objectrelation
- relation in the QName formorgType
- orgType to select- Returns:
- parent orgs of the specified object that have a specific relation and orgType
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getParentOrgByOrgType
OrgType getParentOrgByOrgType(ObjectType object, String orgType) throws SchemaException, SecurityViolationException
Returns parent org of the specified object that have a specific orgType.- Parameters:
object
- base objectorgType
- orgType to select- Returns:
- parent org of the specified object that have a specific orgType
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getParentOrgByArchetype
OrgType getParentOrgByArchetype(ObjectType object, String archetypeOid) throws SchemaException, SecurityViolationException
Returns parent org of the specified object that have a specific archetype.- Parameters:
object
- base objectarchetypeOid
- archetype OID to select (null means "any archetype")- Returns:
- parent org of the specified object that have a specific archetype
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getParentOrgsByRelation
Collection<OrgType> getParentOrgsByRelation(ObjectType object, QName relation) throws SchemaException, SecurityViolationException
Returns parent orgs of the specified object that have a specific relation.- Parameters:
object
- base objectrelation
- relation in the QName form- Returns:
- parent orgs of the specified object that have a specific relation
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getParentOrgsByRelation
Collection<OrgType> getParentOrgsByRelation(ObjectType object, String relation) throws SchemaException, SecurityViolationException
Returns parent orgs of the specified object that have a specific relation.- Parameters:
object
- base objectrelation
- local part of the relation (in the String form)- Returns:
- parent orgs of the specified object that have a specific relation
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getParentOrgs
Collection<OrgType> getParentOrgs(ObjectType object) throws SchemaException, SecurityViolationException
Returns all parent orgs of the specified object.- Parameters:
object
- base object- Returns:
- all parent orgs
- Throws:
SchemaException
- Internal schema errorSecurityViolationException
- Security violation
-
getManagersOfOrg
Collection<UserType> getManagersOfOrg(String orgOid) throws SchemaException, SecurityViolationException
-
isManagerOf
boolean isManagerOf(UserType user, String orgOid)
Returns true if user is a manager of specified organizational unit.
-
isManager
boolean isManager(UserType user)
Returns true if user is a manager of any organizational unit.
-
isManagerOfOrgType
boolean isManagerOfOrgType(UserType user, String orgType) throws SchemaException
- Throws:
SchemaException
-
getPlaintextUserPassword
String getPlaintextUserPassword(FocusType user) throws EncryptionException
- Throws:
EncryptionException
-
getPlaintext
String getPlaintext(ProtectedStringType user) throws EncryptionException
- Throws:
EncryptionException
-
getPlaintextAccountPassword
String getPlaintextAccountPassword(ShadowType account) throws EncryptionException
- Throws:
EncryptionException
-
getPlaintextAccountPasswordFromDelta
String getPlaintextAccountPasswordFromDelta(ObjectDelta<? extends ShadowType> delta) throws EncryptionException
- Throws:
EncryptionException
-
getPlaintextUserPasswordFromDeltas
String getPlaintextUserPasswordFromDeltas(List<ObjectDelta<? extends FocusType>> deltas) throws EncryptionException
- Throws:
EncryptionException
-
getCurrentTask
Task getCurrentTask()
-
getCurrentResult
OperationResult getCurrentResult()
-
getCurrentResult
OperationResult getCurrentResult(String operationName)
-
unwrapModelContext
ModelContext<?> unwrapModelContext(LensContextType lensContextType) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
wrapModelContext
LensContextType wrapModelContext(ModelContext<?> lensContext) throws SchemaException
- Throws:
SchemaException
-
hasLinkedAccount
<F extends ObjectType> boolean hasLinkedAccount(String resourceOid)
-
isCurrentProjectionBeingEnabled
boolean isCurrentProjectionBeingEnabled()
Returns `true` if the current clockwork operation causes the current projection to have `administrativeState` switched toActivationStatusType.ENABLED
. Not always precise - the original value may not be known.
-
isCurrentProjectionActivated
boolean isCurrentProjectionActivated() throws SchemaException, ExpressionEvaluationException, CommunicationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException
Returns `true` if the current clockwork operation brings the projection into existence and being effectively enabled, i.e. with `administrativeState` set to `null` orActivationStatusType.ENABLED
. (So, previously the projection was either non-existent or effectively disabled.) Loads the full shadow if necessary.
-
isCurrentProjectionBeingDisabled
boolean isCurrentProjectionBeingDisabled()
Returns `true` if the current clockwork operation causes the current projection to have `administrativeState` switched to a disabled value (e.g.ActivationStatusType.DISABLED
orActivationStatusType.ARCHIVED
. Not always precise - the original value may not be known. TODO what about deleting projections?
-
isCurrentProjectionDeactivated
boolean isCurrentProjectionDeactivated() throws SchemaException, ExpressionEvaluationException, CommunicationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException
Returns `true` if the current clockwork operation deletes the projection or effectively disables it, i.e. sets `administrativeState`ActivationStatusType.DISABLED
orActivationStatusType.ARCHIVED
. (So, previously the projection existed and was effectively enabled.) Loads the full shadow if necessary.
-
isDirectlyAssigned
<F extends FocusType> boolean isDirectlyAssigned(F focus, String targetOid)
Returns `true` if `focus` has a `assignment` with `targetRef.OID` being equal to `targetOid`. No other conditions are checked (e.g. validity, assignment condition, lifecycle states, and so on).
-
isDirectlyAssigned
boolean isDirectlyAssigned(String targetOid)
-
isDirectlyAssigned
boolean isDirectlyAssigned(ObjectType target)
-
isDirectlyAssigned
<F extends FocusType> boolean isDirectlyAssigned(F focusType, ObjectType target)
-
getLinkedShadow
default ShadowType getLinkedShadow(FocusType focus, String resourceOid) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadows
@NotNull default @NotNull List<ShadowType> getLinkedShadows(FocusType focus, String resourceOid) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadow
default ShadowType getLinkedShadow(FocusType focus, String resourceOid, boolean repositoryObjectOnly) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadows
@NotNull @NotNull List<ShadowType> getLinkedShadows(FocusType focus, String resourceOid, boolean repositoryObjectOnly) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadow
default ShadowType getLinkedShadow(FocusType focus, ResourceType resource) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadow
default ShadowType getLinkedShadow(FocusType focus, ResourceType resource, boolean repositoryObjectOnly) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadow
default ShadowType getLinkedShadow(FocusType focus, String resourceOid, ShadowKindType kind, String intent) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
getLinkedShadow
ShadowType getLinkedShadow(FocusType focus, String resourceOid, ShadowKindType kind, String intent, boolean repositoryObjectOnly) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException
Null values of resource oid, kind, and intent mean "any".
-
getResourceDelta
ObjectDeltaType getResourceDelta(ModelContext<?> context, String resourceOid) throws SchemaException
Returns aggregated delta that is to be executed on a given resource.- Parameters:
context
- model contextresourceOid
- OID of the resource in question- Throws:
SchemaException
-
getProtector
Protector getProtector()
-
parseXmlToMap
Map<String,String> parseXmlToMap(String xml)
Returns a map from the translated xml attribute - value pairs.- Parameters:
xml
- A string representation of xml formatted data.- Throws:
SystemException
- when a xml stream exception occurs
-
isFullShadow
boolean isFullShadow()
-
isProjectionExists
boolean isProjectionExists()
-
getMembers
List<UserType> getMembers(String orgOid) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ObjectNotFoundException, ExpressionEvaluationException
-
getMembersAsReferences
List<ObjectReferenceType> getMembersAsReferences(String orgOid) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ObjectNotFoundException, ExpressionEvaluationException
-
computeProjectionLifecycle
<F extends FocusType> String computeProjectionLifecycle(F focus, ShadowType shadow, ResourceType resource)
Default function used to compute projection lifecycle. It is provided here so it can be explicitly invoked from a custom expression and then the result can be changed for special cases.
-
getPrincipal
MidPointPrincipal getPrincipal() throws SecurityViolationException
Returns principal representing the user whose identity is used to execute the expression.- Throws:
SecurityViolationException
-
getPrincipalOid
String getPrincipalOid()
Returns OID of the current principal. After login is complete, the returned OID is the same as getPrincipal().getOid(). However, during login process, this method returns the OID of the user that is being authenticated/logged-in.
-
getChannel
String getChannel()
-
getWorkflowService
CaseService getWorkflowService()
-
getShadowsToActivate
List<ShadowType> getShadowsToActivate(Collection<? extends ModelProjectionContext> projectionContexts)
Used for account activation notifier to collect all shadows which are going to be activated.
-
createWorkItemCompletionLink
@Nullable @Nullable String createWorkItemCompletionLink(@NotNull @NotNull WorkItemId workItemId)
Returns a link where given work item can be completed.- Returns:
- null if such a link cannot be created
-
resolveEntitlement
ShadowType resolveEntitlement(ShadowAssociationType shadowAssociationType)
-
collectExtensions
ExtensionType collectExtensions(AssignmentPathType path, int startAt) throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, ConfigurationException, ExpressionEvaluationException
-
submitTaskFromTemplate
TaskType submitTaskFromTemplate(String templateTaskOid, List<Item<?,?>> extensionItems) throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, ConfigurationException, ExpressionEvaluationException, ObjectAlreadyExistsException, PolicyViolationException
-
submitTaskFromTemplate
TaskType submitTaskFromTemplate(String templateTaskOid, Map<QName,Object> extensionValues) throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, ConfigurationException, ExpressionEvaluationException, ObjectAlreadyExistsException, PolicyViolationException
-
executeChangesAsynchronously
TaskType executeChangesAsynchronously(Collection<ObjectDelta<?>> deltas, ModelExecuteOptions options, String templateTaskOid) throws SecurityViolationException, ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, ExpressionEvaluationException, ObjectAlreadyExistsException, PolicyViolationException
-
executeChangesAsynchronously
TaskType executeChangesAsynchronously(Collection<ObjectDelta<?>> deltas, ModelExecuteOptions options, String templateTaskOid, Task opTask, OperationResult result) throws SecurityViolationException, ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, ExpressionEvaluationException, ObjectAlreadyExistsException, PolicyViolationException
-
translate
String translate(LocalizableMessage message)
-
translate
String translate(LocalizableMessage message, boolean useDefaultLocale)
Translates message parameter.- Parameters:
useDefaultLocale
- If true, default JVM locale will be used for translation -Locale.getDefault()
. If false, Midpoint will check principal object for more appropriate login -MidPointPrincipal.getLocale()
, if no locale availableLocale.getDefault()
will be used.- Returns:
- translated string
-
translate
String translate(LocalizableMessageType message)
-
translate
String translate(LocalizableMessageType message, boolean useDefaultLocale)
Translates message parameter.- Parameters:
useDefaultLocale
- If true, default JVM locale will be used for translation -Locale.getDefault()
. If false, Midpoint will check principal object for more appropriate login -MidPointPrincipal.getLocale()
, if no locale availableLocale.getDefault()
will be used.- Returns:
- translated string
-
countAccounts
<T> Integer countAccounts(String resourceOid, QName attributeName, T attributeValue) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
Counts accounts having `attributeValue` of `attributeName`. Note that this method uses the default definition ofShadowKindType.ACCOUNT
objects, if present.
-
countAccounts
<T> Integer countAccounts(ResourceType resourceType, QName attributeName, T attributeValue) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
A variant ofcountAccounts(String, QName, Object)
.
-
countAccounts
<T> Integer countAccounts(ResourceType resourceType, String attributeName, T attributeValue) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
A variant ofcountAccounts(String, QName, Object)
. Attribute name is assumed to be in the `ri:` namespace.
-
isUniquePropertyValue
<T> boolean isUniquePropertyValue(ObjectType objectType, String propertyPathString, T propertyValue) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
-
getObjectsInConflictOnPropertyValue
<O extends ObjectType,T> List<O> getObjectsInConflictOnPropertyValue(O objectType, String propertyPathString, T propertyValue, boolean getAllConflicting) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
-
isUniqueAccountValue
<T> boolean isUniqueAccountValue(ResourceType resourceType, ShadowType shadowType, String attributeName, T attributeValue) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException
Checks if the value `attributeValue` of `attributeName` in given shadow is unique on given resource. A search on resource is invoked, and any occurrences (except the one in `shadowType`) are reported as violations. Notes: 1. `shadowType` should have an OID; 2. when constructing the query, the default `account` definition is used to provide attribute definitions.
-
getModelContext
<F extends ObjectType> ModelContext<F> getModelContext()
-
getFocusContext
<F extends ObjectType> ModelElementContext<F> getFocusContext()
-
getProjectionContext
ModelProjectionContext getProjectionContext()
-
getMapping
<V extends PrismValue,D extends ItemDefinition<?>> Mapping<V,D> getMapping()
-
executeAdHocProvisioningScript
Object executeAdHocProvisioningScript(ResourceType resource, String language, String code) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException, ObjectAlreadyExistsException
-
executeAdHocProvisioningScript
Object executeAdHocProvisioningScript(String resourceOid, String language, String code) throws SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, SecurityViolationException, ObjectAlreadyExistsException
-
isEvaluateNew
Boolean isEvaluateNew()
Returns indication whether a script code is evaluating a new value. If this method returns true value then the script code is evaluating "new" value. That means a value that is going to be set to target, e.g. value from "add" or "replace" parts of the delta. If this method returns false value then the script code is evaluating "old" value. That means a value that is used for the purposes of removing values from target, e.g. value from "delete" part of the delta or values from an existing object. If this method returns null then the old/new status cannot be determined or this method is invoked in a situation when such a distinction is not applicable.
-
collectAssignedFocusMappingsResults
@NotNull @NotNull Collection<PrismValue> collectAssignedFocusMappingsResults(@NotNull @NotNull ItemPath path) throws SchemaException
Returns all non-negative values from all focus mappings (targeted to given path) from all non-negative evaluated assignments. Highly experimental. Use at your own risk.- Throws:
SchemaException
-
getFocusesByCorrelationRule
@Deprecated default <F extends FocusType> List<F> getFocusesByCorrelationRule(Class<F> type, String resourceOid, ShadowKindType kind, String intent, ShadowType shadow) throws SchemaException
Deprecated.Legacy name forfindCandidateOwners(Class, ShadowType, String, ShadowKindType, String)
. There are some slight changes in semantics comparing to midPoint 4.5: 1. If `kind` is `null`, `ACCOUNT` is assumed. 2. If `intent` is `null`, `default` is assumed. 3. The use of `type` parameter is a bit different. 4. Instead of being limited to correlation/confirmation expressions, the method now invokes the standard correlation mechanism. SeefindCandidateOwners(Class, ShadowType, String, ShadowKindType, String)
for more information. 5. The original method returns `null` e.g. if there's no synchronization policy, etc. So, this method treats all exceptions (except forSchemaException
) by returning `null`.- Throws:
SchemaException
-
findCandidateOwners
@Experimental @NotNull <F extends FocusType> @NotNull List<F> findCandidateOwners(@NotNull @NotNull Class<F> focusType, @NotNull @NotNull ShadowType resourceObject, @NotNull @NotNull String resourceOid, @NotNull @NotNull ShadowKindType kind, @NotNull @NotNull String intent) throws SchemaException, ExpressionEvaluationException, CommunicationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException
Finds candidate owners using defined correlation rules. (To be used e.g. in synchronization sorter expressions.) Limitations/notes: 1. Fully supported only for simple correlators: query, expression, and item. Other correlators may or may not work here. 2. The method call encompasses execution of "before correlation" mappings.- Parameters:
focusType
- Type of the owner looked for. It is merged with the type defined for given kind/intent; the more specific of the two is used.resourceObject
- Resource object we want to correlateresourceOid
- OID of the resource we want to do the correlation forkind
- Pre-determined (or assumed) kind of the resource objectintent
- Pre-determined (or assumed) intent of the resource object- Throws:
SchemaException
ExpressionEvaluationException
CommunicationException
SecurityViolationException
ConfigurationException
ObjectNotFoundException
-
previewChanges
<F extends ObjectType> ModelContext<F> previewChanges(Collection<ObjectDelta<? extends ObjectType>> deltas, ModelExecuteOptions options) throws CommunicationException, ObjectNotFoundException, ObjectAlreadyExistsException, ConfigurationException, SchemaException, SecurityViolationException, PolicyViolationException, ExpressionEvaluationException
-
previewChanges
<F extends ObjectType> ModelContext<F> previewChanges(Collection<ObjectDelta<? extends ObjectType>> deltas, ModelExecuteOptions options, OperationResult result) throws CommunicationException, ObjectNotFoundException, ObjectAlreadyExistsException, ConfigurationException, SchemaException, SecurityViolationException, PolicyViolationException, ExpressionEvaluationException
-
getPrismContext
PrismContext getPrismContext()
-
getRelationRegistry
RelationRegistry getRelationRegistry()
-
applyDefinition
<T extends ObjectType> void applyDefinition(T object) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, ExpressionEvaluationException
-
deltaFor
<C extends Containerable> S_ItemEntry deltaFor(Class<C> objectClass) throws SchemaException
- Throws:
SchemaException
-
hasArchetype
default <O extends ObjectType> boolean hasArchetype(O object, String archetypeOid)
-
getArchetype
@Deprecated <O extends ObjectType> ArchetypeType getArchetype(O object) throws SchemaException
Deprecated.Assumes single archetype. May throw error if used on object that has more than one archetype.- Throws:
SchemaException
-
getStructuralArchetype
@Nullable <O extends AssignmentHolderType> @Nullable ArchetypeType getStructuralArchetype(O object) throws SchemaException
Returns the structural archetype for the object, possibly `null`.- Throws:
SchemaException
-
getArchetypes
@NotNull <O extends ObjectType> @NotNull List<ArchetypeType> getArchetypes(O object) throws SchemaException
- Throws:
SchemaException
-
getArchetypeOid
@Deprecated <O extends ObjectType> String getArchetypeOid(O object) throws SchemaException
Deprecated.Assumes single archetype. May throw error if used on object that has more than one archetype.- Throws:
SchemaException
-
getArchetypeOids
@NotNull @NotNull List<String> getArchetypeOids(ObjectType object)
Returns a list of archetype OIDs for given object. Currently, those OIDs are taken from archetype assignments. ArchetypeRef values are ignored.
-
addRecomputeTrigger
default <O extends ObjectType> void addRecomputeTrigger(O object, Long timestamp) throws ObjectAlreadyExistsException, SchemaException, ObjectNotFoundException
-
addRecomputeTrigger
default <O extends ObjectType> void addRecomputeTrigger(O object, Long timestamp, MidpointFunctions.TriggerCustomizer triggerCustomizer) throws ObjectAlreadyExistsException, SchemaException, ObjectNotFoundException
-
addRecomputeTrigger
default <O extends ObjectType> void addRecomputeTrigger(PrismObject<O> object, Long timestamp) throws ObjectAlreadyExistsException, SchemaException, ObjectNotFoundException
-
addRecomputeTrigger
<O extends ObjectType> void addRecomputeTrigger(PrismObject<O> object, Long timestamp, MidpointFunctions.TriggerCustomizer triggerCustomizer) throws ObjectAlreadyExistsException, SchemaException, ObjectNotFoundException
-
getRepositoryService
RepositoryService getRepositoryService()
-
getOptimizingTriggerCreator
@NotNull @NotNull OptimizingTriggerCreator getOptimizingTriggerCreator(long fireAfter, long safetyMargin)
-
getAttributeDefinition
@NotNull <T> @NotNull ResourceAttributeDefinition<T> getAttributeDefinition(PrismObject<ResourceType> resource, QName objectClassName, QName attributeName) throws SchemaException
- Throws:
SchemaException
-
getAttributeDefinition
@NotNull <T> @NotNull ResourceAttributeDefinition<T> getAttributeDefinition(PrismObject<ResourceType> resource, String objectClassName, String attributeName) throws SchemaException
- Throws:
SchemaException
-
createRecomputeTrigger
@Experimental void createRecomputeTrigger(Class<? extends ObjectType> type, String oid) throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundException
Goes directly to repository service.
-
getCorrelationCaseForShadow
@Experimental @Nullable @Nullable CaseType getCorrelationCaseForShadow(@Nullable @Nullable ShadowType shadow) throws SchemaException
Returns a correlation case for given shadow. (Need not be full.)- Throws:
SchemaException
-
describeResourceObjectSetLong
String describeResourceObjectSetLong(ResourceObjectSetType set) throws SchemaException, ExpressionEvaluationException, CommunicationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException
Returns longer version of human-readable description of the resource object set: . resource name . object type display name (if known) . object type ID (kind, intent) . flag whether we are using default type definition . object class Currently, object types are resolved and named using theResourceSchemaUtil.findDefinitionForBulkOperation(ResourceType, ShadowKindType, String, QName)
method that is used for import and reconciliation activities. Hence, the name should be quite precise in the context of these activities.
-
describeResourceObjectSetShort
String describeResourceObjectSetShort(ResourceObjectSetType set) throws SchemaException, ExpressionEvaluationException, CommunicationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException
Short version ofdescribeResourceObjectSetLong(ResourceObjectSetType)
: . only one of object type display name and type ID is shown; . object class is omitted when type is present
-
describeResourceObjectSet
default String describeResourceObjectSet(ResourceObjectSetType set) throws SchemaException, ExpressionEvaluationException, CommunicationException, SecurityViolationException, ConfigurationException, ObjectNotFoundException
Synonym fordescribeResourceObjectSetShort(ResourceObjectSetType)
, mainly for compatibility reasons.
-
selectIdentityItemValues
Collection<PrismValue> selectIdentityItemValues(@Nullable @Nullable Collection<FocusIdentityType> identities, @Nullable @Nullable FocusIdentitySourceType source, @NotNull @NotNull ItemPath itemPath)
Selects specified values from all relevant identity data.- Parameters:
identities
- a collection of identities where we search for the datasource
- specification of a source we are looking for; `null` means "all sources" The source is currently matched using resource OID, kind, intent, and tag. SeeFocusIdentityTypeUtil.matches(FocusIdentitySourceType, FocusIdentitySourceType)
method.itemPath
- item that should be provided- See Also:
FocusIdentityTypeUtil.matches(FocusIdentitySourceType, FocusIdentitySourceType)
-
isEffectivelyEnabled
default boolean isEffectivelyEnabled(@Nullable @Nullable ObjectType object)
Returns true if the object is effectively enabled. For convenience, if the object is not present, the method returns `false`. If the object is not aFocusType
, the method returns `true` (as there is no activation there). ForFocusType
objects, it assumes that the object underwent standard computation and `activation/effectiveStatus` is set. If the `activation/effectiveStatus` is not present, the return value of the method is undefined.
-
isFocusActivated
boolean isFocusActivated()
Does the current clockwork operation bring the focus into existence and being effectively enabled? (So, previously it was either non-existent or effectively disabled.)
-
isFocusDeactivated
boolean isFocusDeactivated()
Does the current clockwork operation delete or effectively disable the focus? (So, previously it existed and was effectively enabled.)
-
-