use of org.drools.mvelcompiler.ast.MapPutExprT in project drools by kiegroup.
the class LHSPhase method visit.
@Override
public TypedExpression visit(AssignExpr n, Void arg) {
logPhase("AssignExpr {}", n);
TypedExpression target = n.getTarget().accept(this, arg);
Optional<TypedExpression> bigDecimalConversion = withBigDecimalConversion(n, target, rhsOrError());
if (bigDecimalConversion.isPresent()) {
return bigDecimalConversion.get();
}
if (target instanceof FieldToAccessorTExpr || target instanceof VariableDeclaratorTExpr || target instanceof MapPutExprT) {
return target;
}
return new AssignExprT(n.getOperator(), target, rhsOrNull());
}
use of org.drools.mvelcompiler.ast.MapPutExprT in project drools by kiegroup.
the class LHSPhase method visit.
@Override
public TypedExpression visit(ArrayAccessExpr n, Void arg) {
if (parentIsExpressionStmt(n)) {
return rhsOrError();
}
TypedExpression name = n.getName().accept(this, arg);
Optional<Type> type = name.getType();
if (type.filter(TypeUtils::isCollection).isPresent()) {
Expression index = n.getIndex();
if (index.isStringLiteralExpr() || index.isNameExpr()) {
return new MapPutExprT(name, index, rhsOrNull(), name.getType());
} else {
return new ListAccessExprT(name, index, type.get());
}
}
return new UnalteredTypedExpression(n, type.orElse(null));
}
Aggregations