public boolean hasInitializer() { return node.getInitializer() != null; }
public int getNumArguments() { return node.getArguments().size(); }
consumeToken(); int pos = ts.tokenBeg; NewExpression nx = new NewExpression(pos); nx.setTarget(target); end = ts.tokenEnd; if (args != null) nx.setArguments(args); nx.setParens(lp - pos, rp - pos); ObjectLiteral initializer = objectLiteral(); end = getNodeEnd(initializer); nx.setInitializer(initializer); nx.setLength(end - pos); pn = nx;
private Node transformNewExpr(NewExpression node) { decompiler.addToken(Token.NEW); Node nx = createCallOrNew(Token.NEW, transform(node.getTarget())); nx.setLineno(node.getLineno()); List<AstNode> args = node.getArguments(); decompiler.addToken(Token.LP); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); nx.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); if (node.getInitializer() != null) { nx.addChildToBack(transformObjectLiteral(node.getInitializer())); } return nx; }
@Override public String toSource(int depth) { StringBuilder sb = new StringBuilder(); sb.append(makeIndent(depth)); sb.append("new "); sb.append(target.toSource(0)); sb.append("("); if (arguments != null) { printList(arguments, sb); } sb.append(")"); if (initializer != null) { sb.append(" "); sb.append(initializer.toSource(0)); } return sb.toString(); }
private static Node getNewTarget(NewExpression n) { return n.getTarget(); }
consumeToken(); int pos = ts.tokenBeg; NewExpression nx = new NewExpression(pos); nx.setTarget(target); end = ts.tokenEnd; if (args != null) nx.setArguments(args); nx.setParens(lp - pos, rp - pos); ObjectLiteral initializer = objectLiteral(); end = getNodeEnd(initializer); nx.setInitializer(initializer); nx.setLength(end - pos); pn = nx;
private Node transformNewExpr(NewExpression node) { decompiler.addToken(Token.NEW); Node nx = createCallOrNew(Token.NEW, transform(node.getTarget())); nx.setLineno(node.getLineno()); List<AstNode> args = node.getArguments(); decompiler.addToken(Token.LP); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); nx.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); if (node.getInitializer() != null) { nx.addChildToBack(transformObjectLiteral(node.getInitializer())); } return nx; }
@Override public String toSource(int depth) { StringBuilder sb = new StringBuilder(); sb.append(makeIndent(depth)); sb.append("new "); sb.append(target.toSource(0)); sb.append("("); if (arguments != null) { printList(arguments, sb); } sb.append(")"); if (initializer != null) { sb.append(" "); sb.append(initializer.toSource(0)); } return sb.toString(); }
/** * Returns the node name from 'Token.NEW' AstNode e.g new Object --> Object * new Date --> Date etc.. * * @param node NewExpression node * @return Extracts the Name identifier from NewExpression */ private static String findNewExpressionString(AstNode node) { NewExpression newEx = (NewExpression) node; AstNode target = newEx.getTarget(); String source = target.toSource(); int index = source.indexOf('('); if (index != -1) { source = source.substring(0, index); } return source; }
consumeToken(); int pos = ts.tokenBeg; NewExpression nx = new NewExpression(pos); nx.setTarget(target); end = ts.tokenEnd; if (args != null) nx.setArguments(args); nx.setParens(lp - pos, rp - pos); ObjectLiteral initializer = objectLiteral(); end = getNodeEnd(initializer); nx.setInitializer(initializer); nx.setLength(end - pos); pn = nx;
private Node transformNewExpr(NewExpression node) { decompiler.addToken(Token.NEW); Node nx = createCallOrNew(Token.NEW, transform(node.getTarget())); nx.setLineno(node.getLineno()); List<AstNode> args = node.getArguments(); decompiler.addToken(Token.LP); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); nx.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); if (node.getInitializer() != null) { nx.addChildToBack(transformObjectLiteral(node.getInitializer())); } return nx; }
@Override public String toSource(int depth) { StringBuilder sb = new StringBuilder(); sb.append(makeIndent(depth)); sb.append("new "); sb.append(target.toSource(0)); sb.append("("); if (arguments != null) { printList(arguments, sb); } sb.append(")"); if (initializer != null) { sb.append(" "); sb.append(initializer.toSource(0)); } return sb.toString(); }
@Override public CAstNode visitNewExpression(NewExpression n, WalkContext context) { if (isPrimitiveCreation(context, n)) { return makeBuiltinNew(getNewTarget(n).getString()); } else { AstNode receiver = n.getTarget(); return handleNew(context, visit(receiver, context), gatherCallArguments(n, context)); } }
private void print(FunctionCall node, int precedence) throws IOException { if (tryJavaInvocation(node)) { return; } if (precedence < PRECEDENCE_FUNCTION) { writer.append('('); } int innerPrecedence = node instanceof NewExpression ? PRECEDENCE_FUNCTION - 1 : PRECEDENCE_FUNCTION; if (node instanceof NewExpression) { writer.append("new "); } print(node.getTarget(), innerPrecedence); writer.append('('); printList(node.getArguments()); writer.append(')'); if (node instanceof NewExpression) { NewExpression newExpr = (NewExpression) node; if (newExpr.getInitializer() != null) { writer.ws(); print(newExpr.getInitializer()); } } if (precedence < PRECEDENCE_FUNCTION) { writer.append(')'); } }
/** * Visits this node, the target, and each argument. If there is * a trailing initializer node, visits that last. */ @Override public void visit(NodeVisitor v) { if (v.visit(this)) { target.visit(v); for (AstNode arg : getArguments()) { arg.visit(v); } if (initializer != null) { initializer.visit(v); } } } }
consumeToken(); int pos = ts.tokenBeg; NewExpression nx = new NewExpression(pos); nx.setTarget(target); end = ts.tokenEnd; if (args != null) nx.setArguments(args); nx.setParens(lp - pos, rp - pos); ObjectLiteral initializer = objectLiteral(); end = getNodeEnd(initializer); nx.setInitializer(initializer); nx.setLength(end - pos); pn = nx;
private Node transformNewExpr(NewExpression node) { decompiler.addToken(Token.NEW); Node nx = createCallOrNew(Token.NEW, transform(node.getTarget())); nx.setLineno(node.getLineno()); List<AstNode> args = node.getArguments(); decompiler.addToken(Token.LP); for (int i = 0; i < args.size(); i++) { AstNode arg = args.get(i); nx.addChildToBack(transform(arg)); if (i < args.size() - 1) { decompiler.addToken(Token.COMMA); } } decompiler.addToken(Token.RP); if (node.getInitializer() != null) { nx.addChildToBack(transformObjectLiteral(node.getInitializer())); } return nx; }
@Override public String toSource(int depth) { StringBuilder sb = new StringBuilder(); sb.append(makeIndent(depth)); sb.append("new "); sb.append(target.toSource(0)); sb.append("("); if (arguments != null) { printList(arguments, sb); } sb.append(")"); if (initializer != null) { sb.append(" "); sb.append(initializer.toSource(0)); } return sb.toString(); }
String className = nameOf(expr.getTarget()); maybeWarnMissingRequires(className, "new"); break;