From f3bb1ef8de3fd3a0e28be26ca68cd1aa310c1702 Mon Sep 17 00:00:00 2001 From: lskublik Date: Thu, 27 May 2021 14:52:53 +0200 Subject: [PATCH] fix using of path evaluator for basic type of variable --- .../initial-objects/090-report-audit.xml | 79 ++----------------- .../100-report-reconciliation.xml | 44 +---------- .../initial-objects/110-report-user-list.xml | 60 +------------- .../150-report-certification-cases.xml | 9 +-- .../160-report-certification-decisions.xml | 9 +-- .../path/PathExpressionEvaluation.java | 9 +++ 6 files changed, 26 insertions(+), 184 deletions(-) diff --git a/gui/admin-gui/src/main/resources/initial-objects/090-report-audit.xml b/gui/admin-gui/src/main/resources/initial-objects/090-report-audit.xml index 1704e9025ea..d10e59eeb5f 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/090-report-audit.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/090-report-audit.xml @@ -26,114 +26,49 @@ targetRef filterAll - + $target initiatorRef filterAll - + $initiator outcome filterAll - + $outcome eventType filterAll - + $eventType eventStage filterAll - + $eventStage timestamp filterAll - + $from timestamp filterAll - + $to diff --git a/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml b/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml index 147ab42051e..82cc0e7b5f2 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/100-report-reconciliation.xml @@ -26,36 +26,14 @@ resourceRef filterAll - + $resource synchronizationSituation filterAll - + $situation @@ -75,28 +53,14 @@ kind filterAll - + $kind intent filterAll - + $intent diff --git a/gui/admin-gui/src/main/resources/initial-objects/110-report-user-list.xml b/gui/admin-gui/src/main/resources/initial-objects/110-report-user-list.xml index 1d4c9ca25fb..cae83fe5969 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/110-report-user-list.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/110-report-user-list.xml @@ -23,80 +23,28 @@ activation/administrativeStatus filterAll - + $activation assignment/targetRef filterAll - + $organization assignment/targetRef filterAll - + $role assignment/construction/resourceRef filterAll - + $resource diff --git a/gui/admin-gui/src/main/resources/initial-objects/150-report-certification-cases.xml b/gui/admin-gui/src/main/resources/initial-objects/150-report-certification-cases.xml index 86868f09e65..882e35d420e 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/150-report-certification-cases.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/150-report-certification-cases.xml @@ -21,14 +21,7 @@ ../name filterAll - + $campaignName diff --git a/gui/admin-gui/src/main/resources/initial-objects/160-report-certification-decisions.xml b/gui/admin-gui/src/main/resources/initial-objects/160-report-certification-decisions.xml index 386cfd4cbbc..55c2437d0b7 100644 --- a/gui/admin-gui/src/main/resources/initial-objects/160-report-certification-decisions.xml +++ b/gui/admin-gui/src/main/resources/initial-objects/160-report-certification-decisions.xml @@ -21,14 +21,7 @@ ../name filterAll - + $campaignName diff --git a/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/evaluator/path/PathExpressionEvaluation.java b/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/evaluator/path/PathExpressionEvaluation.java index 7c359fa51c4..57371606052 100644 --- a/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/evaluator/path/PathExpressionEvaluation.java +++ b/model/model-common/src/main/java/com/evolveum/midpoint/model/common/expression/evaluator/path/PathExpressionEvaluation.java @@ -87,6 +87,15 @@ private ResolutionContext getInitialResolveContextFromVariable() throws Expressi return IdiResolutionContext.fromAnyObject(variableValue); } else if (variableValue instanceof PrismValue) { return new ValueResolutionContext((PrismValue) variableValue, context.getContextDescription()); + } else if (!(variableValue instanceof Containerable) && variableValueAndDefinition.getTypeClass().isAssignableFrom(variableValue.getClass())) { + V prismValue; + if (variableValue instanceof Referencable){ + prismValue = (V) evaluator.getPrismContext().itemFactory().createReferenceValue(((Referencable) variableValue).getOid(), ((Referencable) variableValue).getType()); + ((PrismReferenceValue)prismValue).setRelation(((Referencable)variableValue).getRelation()); + } else { + prismValue = (V) evaluator.getPrismContext().itemFactory().createPropertyValue(variableValue); + } + return new ValueResolutionContext(prismValue, context.getContextDescription()); } else { throw new ExpressionEvaluationException("Unexpected variable value "+variableValue+" ("+variableValue.getClass()+")"); }