public void visitMapEntryExpression(MapEntryExpression expression) { expression.getKeyExpression().visit(this); expression.getValueExpression().visit(this); }
@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); }
@Override public void visitMapEntryExpression(MapEntryExpression expr) { MapEntryExpression conversion = new MapEntryExpression( convert(expr.getKeyExpression()), convert(expr.getValueExpression())); conversion.setSourcePosition(expr); result = recordNa(conversion); }
public static MapEntryExpression entryX(Expression key, Expression value) { return new MapEntryExpression(key, value); }
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 static void checkDuplicateNamedParams(AST elist, List expressionList) { if (expressionList.isEmpty()) return; Set<String> namedArgumentNames = new HashSet<String>(); for (Object expression : expressionList) { MapEntryExpression meExp = (MapEntryExpression) expression; if (meExp.getKeyExpression() instanceof ConstantExpression) { String argName = meExp.getKeyExpression().getText(); if (!namedArgumentNames.contains(argName)) { namedArgumentNames.add(argName); } else { throw new ASTRuntimeException(elist, "Duplicate named parameter '" + argName + "' found."); } } } }
int line = entryExpression.getLineNumber(); int col = entryExpression.getColumnNumber(); Expression keyExpression = staticCompilationTransformer.transform(entryExpression.getKeyExpression()); Expression valueExpression = staticCompilationTransformer.transform(entryExpression.getValueExpression()); BinaryExpression bexp = new BinaryExpression(new PropertyExpression(new BytecodeExpression() { @Override
public void addMapEntryExpression(Expression keyExpression, Expression valueExpression) { addMapEntryExpression(new MapEntryExpression(keyExpression, valueExpression)); }
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 void checkDuplicateNamedParams(AST elist, List expressionList) { if (expressionList.isEmpty()) return; Set<String> namedArgumentNames = new HashSet<String>(); for (Object expression : expressionList) { MapEntryExpression meExp = (MapEntryExpression) expression; if (meExp.getKeyExpression() instanceof ConstantExpression) { String argName = meExp.getKeyExpression().getText(); if (!namedArgumentNames.contains(argName)) { namedArgumentNames.add(argName); } else { throw new ASTRuntimeException(elist, "Duplicate named parameter '" + argName + "' found."); } } } }
@Override public void visitMapEntryExpression(MapEntryExpression expr) { result = new ExpressionInfo( TextRegion.of(expr), startOf(":", expr.getValueExpression()), null, convert(expr.getKeyExpression()), convert(expr.getValueExpression()) ); }
@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 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; } }
private void checkDuplicateNamedParams(AST elist, List expressionList) { if(expressionList.isEmpty()) return; Set<String> namedArgumentNames = new HashSet<String>(); MapEntryExpression meExp; for (Iterator iter = expressionList.iterator(); iter.hasNext();) { meExp = (MapEntryExpression) iter.next(); if(meExp.getKeyExpression() instanceof ConstantExpression) { String argName = ((ConstantExpression) meExp.getKeyExpression()).getText(); if(!namedArgumentNames.contains(argName)) { namedArgumentNames.add(argName); } else { throw new ASTRuntimeException(elist, "Duplicate named parameter '" + argName + "' found."); } } } }
public String getText() { StringBuilder sb = new StringBuilder(32); sb.append("["); int size = mapEntryExpressions.size(); MapEntryExpression mapEntryExpression = null; if (size > 0) { mapEntryExpression = mapEntryExpressions.get(0); sb.append(mapEntryExpression.getKeyExpression().getText()).append(":").append(mapEntryExpression.getValueExpression().getText()); for (int i = 1; i < size; i++) { mapEntryExpression = mapEntryExpressions.get(i); sb.append(", ").append(mapEntryExpression.getKeyExpression().getText()).append(":").append(mapEntryExpression.getValueExpression().getText()); if (sb.length() > 120 && i < size - 1) { sb.append(", ... "); break; } } } else { sb.append(":"); } sb.append("]"); return sb.toString(); }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression)); ret.setSourcePosition(this); ret.copyNodeMetaData(this); return ret; }
private void checkDuplicateNamedParams(AST elist, List expressionList) { if(expressionList.isEmpty()) return; Set<String> namedArgumentNames = new HashSet<String>(); MapEntryExpression meExp; for (Iterator iter = expressionList.iterator(); iter.hasNext();) { meExp = (MapEntryExpression) iter.next(); if(meExp.getKeyExpression() instanceof ConstantExpression) { String argName = ((ConstantExpression) meExp.getKeyExpression()).getText(); if(!namedArgumentNames.contains(argName)) { namedArgumentNames.add(argName); } else { throw new ASTRuntimeException(elist, "Duplicate named parameter '" + argName + "' found."); } } } }
public void visitMapEntryExpression(final MapEntryExpression expression) { assertExpressionAuthorized(expression); expression.getKeyExpression().visit(this); expression.getValueExpression().visit(this); }
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; } }
private boolean isParameterPrefix(NamedArgumentListExpression namedArgsExpression, String name) { List<MapEntryExpression> namedArgs = namedArgsExpression.getMapEntryExpressions(); for (MapEntryExpression namedEntry : namedArgs) { String namedArgument = namedEntry.getKeyExpression().getText(); if (namedArgument != null && name.startsWith(namedArgument)) { return true; } } return false; } }