Class EvaluatedAssignmentImpl<AH extends AssignmentHolderType>
- java.lang.Object
-
- com.evolveum.midpoint.model.impl.lens.assignments.EvaluatedAssignmentImpl<AH>
-
- All Implemented Interfaces:
EvaluatedAssignment<AH>,DebugDumpable,ShortDumpable,Serializable
public class EvaluatedAssignmentImpl<AH extends AssignmentHolderType> extends Object implements EvaluatedAssignment<AH>
Evaluated assignment that contains all constructions and authorizations from the assignment itself and all the applicable inducements from all the roles referenced from the assignment.- Author:
- Radovan Semancik
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
-
Constructor Summary
Constructors Constructor Description EvaluatedAssignmentImpl(@NotNull ItemDeltaItem<PrismContainerValue<AssignmentType>,PrismContainerDefinition<AssignmentType>> assignmentIdi, boolean evaluatedOld, @NotNull AssignmentOrigin origin, PrismContext prismContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddFocusMapping(MappingImpl<?,?> focusMapping)voidaddOtherTargetPolicyRule(EvaluatedPolicyRuleImpl policyRule)voidaddThisTargetPolicyRule(EvaluatedPolicyRuleImpl policyRule)StringdebugDump(int indent)voidevaluateConstructions(ObjectDeltaObject<AH> focusOdoAbsolute, Consumer<ResourceType> resourceConsumer, Task task, OperationResult result)Evaluates constructions in this assignment.@NotNull PlusMinusZerogetAbsoluteMode()Returns absolute mode of this assignment with regard to focus old state.@NotNull Collection<AdminGuiConfigurationType>getAdminGuiConfigurations()@NotNull Collection<EvaluatedPolicyRuleImpl>getAllTargetsPolicyRules()Returns all policy rules that apply to any of the target objects provided by this assignment (and are derived from this assignment) - even those that were not triggered.intgetAllTargetsPolicyRulesCount()How many target policy rules are there.@NotNull Collection<PrismReferenceValue>getArchetypeRefVals()AssignmentTypegetAssignment()AssignmentTypegetAssignment(boolean old)LonggetAssignmentId()@NotNull ItemDeltaItem<PrismContainerValue<AssignmentType>,PrismContainerDefinition<AssignmentType>>getAssignmentIdi()@NotNull Collection<Authorization>getAuthorizations()Collection<AssignedResourceObjectConstruction<AH>>getConstructionSet(PlusMinusZero whichSet)@NotNull DeltaSetTriple<AssignedResourceObjectConstruction<AH>>getConstructionTriple()@NotNull Collection<PrismReferenceValue>getDelegationRefVals()@NotNull DeltaSetTriple<EvaluatedResourceObjectConstruction>getEvaluatedConstructions(@NotNull Task task, @NotNull OperationResult result)Construction is not a part of model-api.@NotNull Collection<AssignedFocusMappingEvaluationRequest>getFocusMappingEvaluationRequests()@NotNull Collection<MappingImpl<?,?>>getFocusMappings()These are evaluated focus mappings.@NotNull Collection<EvaluatedPolicyRuleImpl>getFocusPolicyRules()Returns all policy rules that apply to the focal object and are derived from this assignment - even those that were not triggered.@NotNull Collection<PrismReferenceValue>getMembershipRefVals()@NotNull PlusMinusZerogetMode()List<EvaluatedAssignmentTargetImpl>getNonNegativeTargets()QNamegetNormalizedRelation()@NotNull Collection<PrismReferenceValue>getOrgRefVals()@NotNull AssignmentOrigingetOrigin()@NotNull Collection<EvaluatedPolicyRuleImpl>getOtherTargetsPolicyRules()Returns all policy rules that apply to some other target object of this assignment (and are derived from this assignment) - even those that were not triggered.@NotNull DeltaSetTriple<PersonaConstruction<AH>>getPersonaConstructionTriple()QNamegetRelation()@NotNull DeltaSetTriple<EvaluatedAssignmentTargetImpl>getRoles()PrismObject<?>getTarget()StringgetTenantOid()@NotNull Collection<EvaluatedPolicyRuleImpl>getThisTargetPolicyRules()Returns all policy rules that directly apply to the target object of this assignment (and are derived from this assignment) - even those that were not triggered.booleanisBeingAdded()Assignment is either being added in the current wave or was added in some of the previous waves.booleanisBeingDeleted()Assignment is either being deleted in the current wave or was deleted in some of the previous waves.booleanisBeingKept()Assignment was present at the beginning and is not being deleted.booleanisForceRecon()booleanisPresentInCurrentObject()booleanisPresentInOldObject()booleanisValid()TODO Define this concept.booleanisVirtual()voidsetForceRecon(boolean forceRecon)voidsetTarget(PrismObject<?> target)voidsetValid(boolean isValid)voidsetWasValid(boolean wasValid)voidshortDump(StringBuilder sb)Show the content of the object intended for diagnostics.StringtoHumanReadableString()StringtoString()voidtriggerRule(@NotNull EvaluatedPolicyRule rule, Collection<EvaluatedPolicyRuleTrigger<?>> triggers)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
-
Methods inherited from interface com.evolveum.midpoint.model.api.context.EvaluatedAssignment
getAssignmentType, getAssignmentType
-
Methods inherited from interface com.evolveum.midpoint.util.ShortDumpable
shortDump, shortDumpLazily
-
-
-
-
Constructor Detail
-
EvaluatedAssignmentImpl
public EvaluatedAssignmentImpl(@NotNull @NotNull ItemDeltaItem<PrismContainerValue<AssignmentType>,PrismContainerDefinition<AssignmentType>> assignmentIdi, boolean evaluatedOld, @NotNull @NotNull AssignmentOrigin origin, PrismContext prismContext)
-
-
Method Detail
-
getAssignmentIdi
@NotNull public @NotNull ItemDeltaItem<PrismContainerValue<AssignmentType>,PrismContainerDefinition<AssignmentType>> getAssignmentIdi()
-
getAssignment
public AssignmentType getAssignment()
- Specified by:
getAssignmentin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getAssignmentId
public Long getAssignmentId()
- Specified by:
getAssignmentIdin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getAssignment
public AssignmentType getAssignment(boolean old)
- Specified by:
getAssignmentin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getRelation
public QName getRelation()
- Specified by:
getRelationin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getNormalizedRelation
public QName getNormalizedRelation()
- Specified by:
getNormalizedRelationin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getConstructionTriple
@NotNull public @NotNull DeltaSetTriple<AssignedResourceObjectConstruction<AH>> getConstructionTriple()
-
getEvaluatedConstructions
@NotNull public @NotNull DeltaSetTriple<EvaluatedResourceObjectConstruction> getEvaluatedConstructions(@NotNull @NotNull Task task, @NotNull @NotNull OperationResult result)
Construction is not a part of model-api. To avoid heavy refactoring at present time, there is not a classical Construction-ConstructionImpl separation, but we use artificial (simplified) EvaluatedConstruction API class instead.- Specified by:
getEvaluatedConstructionsin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getConstructionSet
public Collection<AssignedResourceObjectConstruction<AH>> getConstructionSet(PlusMinusZero whichSet)
-
getPersonaConstructionTriple
@NotNull public @NotNull DeltaSetTriple<PersonaConstruction<AH>> getPersonaConstructionTriple()
-
getRoles
@NotNull public @NotNull DeltaSetTriple<EvaluatedAssignmentTargetImpl> getRoles()
- Specified by:
getRolesin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getOrgRefVals
@NotNull public @NotNull Collection<PrismReferenceValue> getOrgRefVals()
-
getArchetypeRefVals
@NotNull public @NotNull Collection<PrismReferenceValue> getArchetypeRefVals()
-
getMembershipRefVals
@NotNull public @NotNull Collection<PrismReferenceValue> getMembershipRefVals()
-
getDelegationRefVals
@NotNull public @NotNull Collection<PrismReferenceValue> getDelegationRefVals()
-
getTenantOid
public String getTenantOid()
-
getAuthorizations
@NotNull public @NotNull Collection<Authorization> getAuthorizations()
- Specified by:
getAuthorizationsin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getAdminGuiConfigurations
@NotNull public @NotNull Collection<AdminGuiConfigurationType> getAdminGuiConfigurations()
- Specified by:
getAdminGuiConfigurationsin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getFocusMappings
@NotNull public @NotNull Collection<MappingImpl<?,?>> getFocusMappings()
Description copied from interface:EvaluatedAssignmentThese are evaluated focus mappings. Since 4.0.1 the evaluation is carried out not during assignment evaluation but afterwards.- Specified by:
getFocusMappingsin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getFocusMappingEvaluationRequests
@NotNull public @NotNull Collection<AssignedFocusMappingEvaluationRequest> getFocusMappingEvaluationRequests()
-
addFocusMapping
public void addFocusMapping(MappingImpl<?,?> focusMapping)
-
getTarget
public PrismObject<?> getTarget()
- Specified by:
getTargetin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
setTarget
public void setTarget(PrismObject<?> target)
-
isVirtual
public boolean isVirtual()
-
isValid
public boolean isValid()
Description copied from interface:EvaluatedAssignmentTODO Define this concept. It looks like it mixes ideas of validity (activation, lifecycle state) and relativity mode (condition).- Specified by:
isValidin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
setValid
public void setValid(boolean isValid)
-
setWasValid
public void setWasValid(boolean wasValid)
-
isForceRecon
public boolean isForceRecon()
-
setForceRecon
public void setForceRecon(boolean forceRecon)
-
evaluateConstructions
public void evaluateConstructions(ObjectDeltaObject<AH> focusOdoAbsolute, Consumer<ResourceType> resourceConsumer, Task task, OperationResult result) throws SchemaException, ExpressionEvaluationException, ObjectNotFoundException, SecurityViolationException, ConfigurationException, CommunicationException
Evaluates constructions in this assignment.- Parameters:
focusOdoAbsolute- Absolute focus ODO. It must not be relative one, because constructions are applied on resource objects. And resource objects' old state is related to focus object old state. (These projections are _not_ changed iteratively, perhaps except for wave restarting.)- Throws:
SchemaExceptionExpressionEvaluationExceptionObjectNotFoundExceptionSecurityViolationExceptionConfigurationExceptionCommunicationException
-
getOrigin
@NotNull public @NotNull AssignmentOrigin getOrigin()
-
isPresentInCurrentObject
public boolean isPresentInCurrentObject()
- Specified by:
isPresentInCurrentObjectin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
isPresentInOldObject
public boolean isPresentInOldObject()
- Specified by:
isPresentInOldObjectin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getFocusPolicyRules
@NotNull public @NotNull Collection<EvaluatedPolicyRuleImpl> getFocusPolicyRules()
Description copied from interface:EvaluatedAssignmentReturns all policy rules that apply to the focal object and are derived from this assignment - even those that were not triggered. The policy rules are compiled from all the applicable sources (target, meta-roles, etc.)- Specified by:
getFocusPolicyRulesin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getThisTargetPolicyRules
@NotNull public @NotNull Collection<EvaluatedPolicyRuleImpl> getThisTargetPolicyRules()
Description copied from interface:EvaluatedAssignmentReturns all policy rules that directly apply to the target object of this assignment (and are derived from this assignment) - even those that were not triggered. The policy rules are compiled from all the applicable sources (target, meta-roles, etc.)- Specified by:
getThisTargetPolicyRulesin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
addThisTargetPolicyRule
public void addThisTargetPolicyRule(EvaluatedPolicyRuleImpl policyRule)
-
getOtherTargetsPolicyRules
@NotNull public @NotNull Collection<EvaluatedPolicyRuleImpl> getOtherTargetsPolicyRules()
Description copied from interface:EvaluatedAssignmentReturns all policy rules that apply to some other target object of this assignment (and are derived from this assignment) - even those that were not triggered. The policy rules are compiled from all the applicable sources (target, meta-roles, etc.)- Specified by:
getOtherTargetsPolicyRulesin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
addOtherTargetPolicyRule
public void addOtherTargetPolicyRule(EvaluatedPolicyRuleImpl policyRule)
-
getAllTargetsPolicyRules
@NotNull public @NotNull Collection<EvaluatedPolicyRuleImpl> getAllTargetsPolicyRules()
Description copied from interface:EvaluatedAssignmentReturns all policy rules that apply to any of the target objects provided by this assignment (and are derived from this assignment) - even those that were not triggered. The policy rules are compiled from all the applicable sources (target, meta-roles, etc.) The difference to getThisTargetPolicyRules is that if e.g. jack is a Pirate, and Pirate induces Sailor, then - getThisTargetPolicyRules will show rules that are attached to Pirate - getAllTargetsPolicyRules will show rules that are attached to Pirate and Sailor - getOtherTargetsPolicyRules will show rules that are attached to Sailor- Specified by:
getAllTargetsPolicyRulesin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
getAllTargetsPolicyRulesCount
public int getAllTargetsPolicyRulesCount()
Description copied from interface:EvaluatedAssignmentHow many target policy rules are there. This is more efficient than getAllTargetsPolicyRules().size(), as the collection of all targets policy rules is computed on demand.- Specified by:
getAllTargetsPolicyRulesCountin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
triggerRule
public void triggerRule(@NotNull @NotNull EvaluatedPolicyRule rule, Collection<EvaluatedPolicyRuleTrigger<?>> triggers)- Specified by:
triggerRulein interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
debugDump
public String debugDump(int indent)
- Specified by:
debugDumpin interfaceDebugDumpable
-
toHumanReadableString
public String toHumanReadableString()
-
shortDump
public void shortDump(StringBuilder sb)
Description copied from interface:ShortDumpableShow the content of the object intended for diagnostics. This method is supposed to append a compact, human-readable output in a single line. Unlike toString() method, there is no requirement to identify the actual class or type of the object. It is assumed that the class/type will be obvious from the context in which the output is used.- Specified by:
shortDumpin interfaceShortDumpable- Parameters:
sb- StringBuilder to which to a compact one-line content of the object intended for diagnostics by system administrator should be appended.
-
getNonNegativeTargets
public List<EvaluatedAssignmentTargetImpl> getNonNegativeTargets()
-
getMode
@NotNull @Experimental public @NotNull PlusMinusZero getMode()
- Returns:
- mode (adding, deleting, keeping) with respect to the *current* object (not the old one)
-
getAbsoluteMode
@NotNull public @NotNull PlusMinusZero getAbsoluteMode()
Returns absolute mode of this assignment with regard to focus old state.
-
isBeingAdded
public boolean isBeingAdded()
Description copied from interface:EvaluatedAssignmentAssignment is either being added in the current wave or was added in some of the previous waves.- Specified by:
isBeingAddedin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
isBeingDeleted
public boolean isBeingDeleted()
Description copied from interface:EvaluatedAssignmentAssignment is either being deleted in the current wave or was deleted in some of the previous waves.- Specified by:
isBeingDeletedin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
isBeingKept
public boolean isBeingKept()
Description copied from interface:EvaluatedAssignmentAssignment was present at the beginning and is not being deleted.- Specified by:
isBeingKeptin interfaceEvaluatedAssignment<AH extends AssignmentHolderType>
-
-