-
Notifications
You must be signed in to change notification settings - Fork 188
/
PathExpressionEvaluator.java
55 lines (47 loc) · 2.15 KB
/
PathExpressionEvaluator.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
* Copyright (c) 2020 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.model.common.expression.evaluator.path;
import javax.xml.namespace.QName;
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismValue;
import com.evolveum.midpoint.prism.crypto.Protector;
import com.evolveum.midpoint.prism.delta.PrismValueDeltaSetTriple;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.repo.common.expression.ExpressionEvaluationContext;
import com.evolveum.midpoint.repo.common.expression.ExpressionUtil;
import com.evolveum.midpoint.repo.common.expression.evaluator.AbstractExpressionEvaluator;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.util.exception.*;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
/**
* Returns value set triple derived from specified (or default) source by resolving specified path.
*
* @author Radovan Semancik
*/
public class PathExpressionEvaluator<V extends PrismValue, D extends ItemDefinition>
extends AbstractExpressionEvaluator<V, D, ItemPathType> {
PathExpressionEvaluator(QName elementName, ItemPathType path, D outputDefinition, Protector protector,
PrismContext prismContext) {
super(elementName, path, outputDefinition, protector, prismContext);
}
@Override
public PrismValueDeltaSetTriple<V> evaluate(ExpressionEvaluationContext context, OperationResult result)
throws SchemaException, ExpressionEvaluationException, SecurityViolationException,
ConfigurationException, ObjectNotFoundException, CommunicationException {
ExpressionUtil.checkEvaluatorProfileSimple(this, context);
return new PathExpressionEvaluation<>(this, context)
.evaluate(result);
}
public ItemPath getPath() {
return expressionEvaluatorBean.getItemPath();
}
@Override
public String shortDebugDump() {
return "path: " + getPath();
}
}