public <V extends PrismValue,D extends ItemDefinition> Expression<V,D> makeExpression(ExpressionType expressionType, D outputDefinition, String shortDesc, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException { ExpressionIdentifier eid = new ExpressionIdentifier(expressionType, outputDefinition); Expression<V,D> expression = (Expression<V,D>) cache.get(eid); if (expression == null) { expression = createExpression(expressionType, outputDefinition, shortDesc, task, result); cache.put(eid, expression); } return expression; }