Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Sep 13, 2016
2 parents 7b56c2d + f1bd29c commit f7e7ae9
Showing 1 changed file with 19 additions and 15 deletions.
Expand Up @@ -232,17 +232,13 @@ private <O extends ObjectType> void evaluateAssignment(EvaluatedAssignmentImpl<F
ItemDeltaItem<PrismContainerValue<AssignmentType>,PrismContainerDefinition<AssignmentType>> assignmentIdi = assignmentPathSegment.getAssignmentIdi();
AssignmentType assignmentType = LensUtil.getAssignmentType(assignmentIdi, evaluateOld);

LOGGER.trace("Found assignment: {}", assignmentType);

checkSchema(assignmentType, sourceDescription);

List<PrismObject<O>> targets = null;
if (assignmentType.getTarget() != null) {
LOGGER.trace("Target already exists in assignment: {}", assignmentType.getTarget());
targets = new ArrayList<>(1);
targets.add(assignmentType.getTarget().asPrismObject());
} else if (assignmentType.getTargetRef() != null) {
LOGGER.trace("Target doesn't exists in assignment, resolving using target ref: {}", assignmentType.getTargetRef());
try {
targets = resolveTargets(assignmentType, assignmentPathSegment, source, sourceDescription, task, result);
} catch (ObjectNotFoundException ex) {
Expand Down Expand Up @@ -560,14 +556,18 @@ private boolean evaluateAbstractRole(EvaluatedAssignmentImpl<F> assignment, Assi
orderOneObject = roleType;
} else {
AssignmentPathSegment last = assignmentPath.last();
if (last != null && last.getOrderOneObject() != null) {
orderOneObject = last.getOrderOneObject();
if (last != null && last.getSource() != null) {
orderOneObject = last.getSource();
} else {
orderOneObject = roleType;
}
// if (last != null && last.getOrderOneObject() != null) {
// orderOneObject = last.getOrderOneObject();
// } else {
// orderOneObject = roleType;
// }
}
LOGGER.trace("Order one object {}", orderOneObject);
LOGGER.trace("All assignment segments: {}", assignmentPath.getSegments());

for (AssignmentType roleInducement : roleType.getInducement()) {
if (!isApplicable(roleInducement.getFocusType(), roleType)){
continue;
Expand All @@ -589,14 +589,18 @@ private boolean evaluateAbstractRole(EvaluatedAssignmentImpl<F> assignment, Assi
}
roleAssignmentPathSegment.setEvaluateConstructions(true);
roleAssignmentPathSegment.setEvaluationOrder(evaluationOrder);
ObjectType sourceObject = null;
if (evaluationOrder > 0 && assignmentPath.last().getSource() instanceof AbstractRoleType) {
sourceObject = assignmentPath.last().getSource();
} else {
sourceObject = assignmentPath.last().getTarget();
}
// ObjectType sourceObject = null;
// if (evaluationOrder > 1) {
// if (assignmentPath.last().getSource() instanceof AbstractRoleType) {
// sourceObject = assignmentPath.last().getSource();
// } else {
// sourceObject = orderOneObject;
// }
// } else {
// sourceObject = orderOneObject;
// }
// ObjectType sourceObject = (evaluationOrder > 0 ? assignmentPath.last().getSource() : roleType);
roleAssignmentPathSegment.setOrderOneObject(sourceObject);
roleAssignmentPathSegment.setOrderOneObject(orderOneObject);
evaluateAssignment(assignment, roleAssignmentPathSegment, evaluateOld, mode, isValid, roleType, subSourceDescription, assignmentPath, task, result);
// } else if (inducementOrder < assignmentPath.getEvaluationOrder()) {
// LOGGER.trace("Follow({}) inducement({}) in role {}",
Expand Down

0 comments on commit f7e7ae9

Please sign in to comment.