Example usage for org.eclipse.jdt.core.dom ArrayCreation dimensions

List of usage examples for org.eclipse.jdt.core.dom ArrayCreation dimensions

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom ArrayCreation dimensions.

Prototype

ASTNode.NodeList dimensions

To view the source code for org.eclipse.jdt.core.dom ArrayCreation dimensions.

Click Source Link

Document

The list of dimension expressions (element type: Expression ).

Usage

From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java

License:Open Source License

@Override
public boolean visit(ArrayCreation node) {
    this.fBuffer.append("new ");//$NON-NLS-1$
    ArrayType at = node.getType();
    int dims = at.getDimensions();
    Type elementType = at.getElementType();
    elementType.accept(this);
    for (Iterator<Expression> it = node.dimensions().iterator(); it.hasNext();) {
        this.fBuffer.append("[");//$NON-NLS-1$
        Expression e = it.next();
        e.accept(this);
        this.fBuffer.append("]");//$NON-NLS-1$
        dims--;/*from  w  w  w .  ja v  a2 s .co m*/
    }
    // add empty "[]" for each extra array dimension
    for (int i = 0; i < dims; i++) {
        this.fBuffer.append("[]");//$NON-NLS-1$
    }
    if (node.getInitializer() != null) {
        node.getInitializer().accept(this);
    }
    return false;
}

From source file:boa.datagen.util.Java7Visitor.java

License:Apache License

@Override
public boolean visit(ArrayCreation node) {
    boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder();
    //      b.setPosition(pos.build());
    b.setKind(boa.types.Ast.Expression.ExpressionKind.NEWARRAY);
    boa.types.Ast.Type.Builder tb = boa.types.Ast.Type.newBuilder();
    tb.setName(getIndex(typeName(node.getType())));
    tb.setKind(boa.types.Ast.TypeKind.OTHER);
    b.setNewType(tb.build());/* ww w .  j  av a2s .  c  o  m*/
    for (Object e : node.dimensions()) {
        ((org.eclipse.jdt.core.dom.Expression) e).accept(this);
        b.addExpressions(expressions.pop());
    }
    if (node.getInitializer() != null) {
        node.getInitializer().accept(this);
        // FIXME
        b.addExpressions(expressions.pop());
    }
    expressions.push(b.build());
    return false;
}

From source file:coloredide.utils.CopiedNaiveASTFlattener.java

License:Open Source License

public boolean visit(ArrayCreation node) {
    this.buffer.append("new ");//$NON-NLS-1$
    ArrayType at = node.getType();
    int dims = at.getDimensions();
    Type elementType = at.getElementType();
    elementType.accept(this);
    for (Iterator it = node.dimensions().iterator(); it.hasNext();) {
        this.buffer.append("[");//$NON-NLS-1$
        Expression e = (Expression) it.next();
        e.accept(this);
        this.buffer.append("]");//$NON-NLS-1$
        dims--;//from w w w  .ja va2s.c  o m
    }
    // add empty "[]" for each extra array dimension
    for (int i = 0; i < dims; i++) {
        this.buffer.append("[]");//$NON-NLS-1$
    }
    if (node.getInitializer() != null) {
        node.getInitializer().accept(this);
    }
    return false;
}

From source file:com.bsiag.eclipse.jdt.java.formatter.SpacePreparator.java

License:Open Source License

@Override
public boolean visit(ArrayCreation node) {
    List<Expression> dimensions = node.dimensions();
    for (Expression dimension : dimensions) {
        handleTokenBefore(dimension, TokenNameLBRACKET, false,
                this.options.insert_space_after_opening_bracket_in_array_allocation_expression);
        handleTokenAfter(dimension, TokenNameRBRACKET,
                this.options.insert_space_before_closing_bracket_in_array_allocation_expression, false);
    }//from ww  w .  j  ava2  s  .  c om
    return true;
}

From source file:com.google.dart.java2dart.SyntaxTranslator.java

License:Open Source License

@Override
public boolean visit(org.eclipse.jdt.core.dom.ArrayCreation node) {
    TypeName listType = translate(node.getType());
    TypeArgumentList typeArgs = listType.getTypeArguments();
    if (node.getInitializer() != null) {
        List<Expression> elements = translateExpressionList(node.getInitializer().expressions());
        return done(listLiteral(null, typeArgs, elements));
    } else {/* w ww  . j  ava  2  s .c  o  m*/
        List<Expression> arguments = translateArguments(null, node.dimensions());
        // may be primitive array element
        {
            String arrayElementTypeName = typeArgs.getArguments().get(0).getName().getName();
            Expression initializer = getPrimitiveTypeDefaultValue(arrayElementTypeName);
            if (initializer != null) {
                arguments.add(initializer);
                return done(instanceCreationExpression(Keyword.NEW, listType, "filled", arguments));
            }
        }
        // non-primitive array element
        return done(instanceCreationExpression(Keyword.NEW, listType, arguments));
    }
}

From source file:com.google.devtools.j2cpp.gen.CppStatementGenerator.java

License:Open Source License

@Override
public boolean visit(ArrayCreation node) {
    @SuppressWarnings("unchecked")
    List<Expression> dimensions = node.dimensions(); // safe by definition
    ArrayInitializer init = node.getInitializer();
    if (init != null) {
        // Create an expression like [IOSArrayInt arrayWithInts:(int[]){ 1, 2, 3 }].
        ArrayType at = node.getType();
        ITypeBinding componentType = Types.getTypeBinding(node).getComponentType();

        // New array needs to be retained if it's a new assignment, since the
        // arrayWith* methods return an autoreleased object.
        boolean shouldRetain = useReferenceCounting && isNewAssignment(node);
        if (shouldRetain) {
            buffer.append("[[");
        } else {//from  w  w  w . j  a v  a 2  s  .co  m
            buffer.append('[');
        }
        String elementType = at.getElementType().toString();
        buffer.append(elementType);
        buffer.append(' ');

        IOSArrayTypeBinding iosArrayBinding = Types.resolveArrayType(componentType);
        buffer.append(iosArrayBinding.getInitMethod());
        buffer.append(':');
        printArrayLiteral(init);
        buffer.append(" count:");
        buffer.append(init.expressions().size());
        if (elementType.equals("IOSObjectArray")) {
            buffer.append(" type:");
            printObjectArrayType(componentType);
        }
        buffer.append(']');
        if (shouldRetain) {
            buffer.append(" retain]");
        }
    } else if (node.dimensions().size() > 1) {
        printMultiDimArray(Types.getTypeBinding(node).getElementType(), dimensions);
    } else {
        assert dimensions.size() == 1;
        printSingleDimArray(Types.getTypeBinding(node).getElementType(), dimensions.get(0),
                useReferenceCounting && !isNewAssignment(node));
    }
    return false;
}

From source file:com.google.devtools.j2objc.util.ASTUtil.java

License:Apache License

@SuppressWarnings("unchecked")
public static List<Expression> getDimensions(ArrayCreation node) {
    return node.dimensions();
}

From source file:com.google.googlejavaformat.java.JavaInputAstVisitor.java

License:Apache License

/** Visitor method for {@link ArrayCreation}s. */
@Override// w ww. j a  v  a  2s .  co m
public boolean visit(ArrayCreation node) {
    sync(node);
    builder.open(plusFour);
    token("new");
    builder.space();
    visitArrayType(node.getType(), DimensionsOrNot.NO);
    int dimensions = node.getType().getDimensions();
    builder.open(ZERO);
    for (int i = 0; i < dimensions; i++) {
        builder.breakOp();
        token("[");
        if (i < node.dimensions().size()) {
            ((Expression) node.dimensions().get(i)).accept(this);
        }
        token("]");
    }
    builder.close();
    builder.close();
    if (node.getInitializer() != null) {
        builder.space();
        visit(node.getInitializer());
    }
    return false;
}

From source file:com.ibm.wala.cast.java.translator.jdt.JDTJava2CAstTranslator.java

License:Open Source License

private CAstNode visit(ArrayCreation n, WalkContext context) {
    ITypeBinding newType = n.resolveTypeBinding();
    ArrayInitializer ai = n.getInitializer();
    assert newType.isArray();

    if (ai != null) {
        return visitNode(ai, context);
    } else {//from   w  w w . j  ava 2 s . c  om
        TypeReference arrayTypeRef = fIdentityMapper.getTypeRef(newType);

        List/* <Expression> */ dims = n.dimensions();
        CAstNode[] args = new CAstNode[dims.size() + 1];

        int idx = 0;
        args[idx++] = fFactory.makeConstant(arrayTypeRef);
        for (Iterator iter = dims.iterator(); iter.hasNext();) {
            Expression dimExpr = (Expression) iter.next();
            args[idx++] = visitNode(dimExpr, context);
        }
        return makeNode(context, fFactory, n, CAstNode.NEW, args);
    }
}

From source file:edu.cmu.cs.crystal.cfg.eclipse.EclipseCFG.java

License:Open Source License

@Override
public void endVisit(ArrayCreation node) {
    EclipseCFGNode arrayCreation = nodeMap.get(node);
    if (node.getInitializer() == null)
        makeListEdges(null, node.dimensions(), arrayCreation);
    else {// w  w  w  . j  ava  2s .c  o m
        EclipseCFGNode arrayInit = nodeMap.get(node.getInitializer());
        createEdge(arrayInit.getEnd(), arrayCreation);
        arrayCreation.setStart(arrayInit.getStart());
    }
}