public static MapEntryExpression entryX(Expression key, Expression value) { return new MapEntryExpression(key, value); }
public void addMapEntryExpression(Expression keyExpression, Expression valueExpression) { addMapEntryExpression(new MapEntryExpression(keyExpression, valueExpression)); }
protected boolean addArgumentExpression(AST node, List<Expression> expressionList) { if (node.getType() == SPREAD_MAP_ARG) { AST rightNode = node.getFirstChild(); Expression keyExpression = spreadMapExpression(node); Expression rightExpression = expression(rightNode); MapEntryExpression mapEntryExpression = new MapEntryExpression(keyExpression, rightExpression); expressionList.add(mapEntryExpression); return true; } else { Expression expression = expression(node); expressionList.add(expression); return expression instanceof MapEntryExpression; } }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression)); ret.setSourcePosition(this); ret.copyNodeMetaData(this); return ret; }
@Override public void visitMapEntryExpression(MapEntryExpression expr) { MapEntryExpression conversion = new MapEntryExpression( convert(expr.getKeyExpression()), convert(expr.getValueExpression())); conversion.setSourcePosition(expr); result = recordNa(conversion); }
protected MapEntryExpression mapEntryExpression(AST node) { if (node.getType() == SPREAD_MAP_ARG) { AST rightNode = node.getFirstChild(); Expression keyExpression = spreadMapExpression(node); Expression rightExpression = expression(rightNode); MapEntryExpression mapEntryExpression = new MapEntryExpression(keyExpression, rightExpression); configureAST(mapEntryExpression, node); return mapEntryExpression; } else { AST keyNode = node.getFirstChild(); Expression keyExpression = expression(keyNode); AST valueNode = keyNode.getNextSibling(); Expression valueExpression = expression(valueNode); MapEntryExpression mapEntryExpression = new MapEntryExpression(keyExpression, valueExpression); configureAST(mapEntryExpression, node); return mapEntryExpression; } }
@Override public void visitMapEntryExpression(MapEntryExpression expr) { MapEntryExpression result = new MapEntryExpression( replaceExpr(expr.getKeyExpression()), replaceExpr(expr.getValueExpression()) ); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
private Expression transformMapEntryExpression(MapEntryExpression me, ClassNode constructorCallType) { Expression key = me.getKeyExpression(); Expression value = me.getValueExpression(); ModuleNode module = currentClass.getModule(); if (module != null && key instanceof ConstantExpression) { Map<String, ImportNode> importNodes = module.getStaticImports(); if (importNodes.containsKey(key.getText())) { ImportNode importNode = importNodes.get(key.getText()); if (importNode.getType().equals(constructorCallType)) { String newKey = importNode.getFieldName(); return new MapEntryExpression(new ConstantExpression(newKey), value.transformExpression(this)); } } } return me; }
private boolean processDelegateParam(MethodNode mNode, Parameter mapParam, ArgumentListExpression args, List<String> propNames, Parameter fromParam) { if (isInnerClass(fromParam.getType())) { if (mNode.isStatic()) { addError("Error during " + MY_TYPE_NAME + " processing. Delegate type '" + fromParam.getType().getNameWithoutPackage() + "' is an inner class which is not supported.", mNode); return false; } } Set<String> names = new HashSet<String>(); List<PropertyNode> props = getAllProperties(names, fromParam.getType(), true, false, false, true, false, true); for (String next : names) { if (hasDuplicates(mNode, propNames, next)) return false; } List<MapEntryExpression> entries = new ArrayList<MapEntryExpression>(); for (PropertyNode pNode : props) { String name = pNode.getName(); entries.add(new MapEntryExpression(constX(name), propX(varX(mapParam), name))); AnnotationNode namedParam = new AnnotationNode(NAMED_PARAM_TYPE); namedParam.addMember("value", constX(name)); namedParam.addMember("type", classX(pNode.getType())); mapParam.addAnnotation(namedParam); } Expression delegateMap = new MapExpression(entries); args.addExpression(castX(fromParam.getType(), delegateMap)); return true; }
/** * Creates an instance of type {@link MapEntryExpression} * * @param key an {@link Expression} as the map entry key * @param value an {@link Expression} as the map entry value * @return an instance of {@link MapEntryExpression} * @since 0.2.8 */ public static MapEntryExpression mapEntryX(final Expression key, final Expression value) { return new MapEntryExpression(key, value); }
public void addMapEntryExpression(Expression keyExpression, Expression valueExpression) { addMapEntryExpression(new MapEntryExpression(keyExpression, valueExpression)); }
public void addMapEntryExpression(Expression keyExpression, Expression valueExpression) { addMapEntryExpression(new MapEntryExpression(keyExpression, valueExpression)); }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression)); ret.setSourcePosition(this); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression)); ret.setSourcePosition(this); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression)); ret.setSourcePosition(this); return ret; }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression)); ret.setSourcePosition(this); return ret; }
protected boolean addArgumentExpression(AST node, List<Expression> expressionList) { if (node.getType() == SPREAD_MAP_ARG) { AST rightNode = node.getFirstChild(); Expression keyExpression = spreadMapExpression(node); Expression rightExpression = expression(rightNode); MapEntryExpression mapEntryExpression = new MapEntryExpression(keyExpression, rightExpression); expressionList.add(mapEntryExpression); return true; } else { Expression expression = expression(node); expressionList.add(expression); return expression instanceof MapEntryExpression; } }
protected boolean addArgumentExpression(AST node, List expressionList) { if (node.getType() == SPREAD_MAP_ARG) { AST rightNode = node.getFirstChild(); Expression keyExpression = spreadMapExpression(node); Expression rightExpression = expression(rightNode); MapEntryExpression mapEntryExpression = new MapEntryExpression(keyExpression, rightExpression); expressionList.add(mapEntryExpression); return true; } else { Expression expression = expression(node); expressionList.add(expression); return expression instanceof MapEntryExpression; } }
@Override public void visitMapEntryExpression(MapEntryExpression expr) { MapEntryExpression result = new MapEntryExpression( replaceExpr(expr.getKeyExpression()), replaceExpr(expr.getValueExpression()) ); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
protected FieldNode addTestRuntimeAwareMixinFieldIfNonExistent(ClassNode classNode, ClassNode fieldType, String fieldName) { if (classNode == null || classNode.getField(fieldName) != null) { return null; } MapExpression constructorArguments = new MapExpression(); constructorArguments.addMapEntryExpression(new MapEntryExpression(new ConstantExpression("testClass"), new ClassExpression(classNode))); FieldNode mixinInstanceFieldNode = classNode.addField(fieldName, Modifier.STATIC, fieldType, new ConstructorCallExpression(fieldType, constructorArguments)); mixinInstanceFieldNode.addAnnotation(new AnnotationNode(ClassHelper.make(MixinInstance.class))); addJunitRuleFields(classNode); return mixinInstanceFieldNode; }