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

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

Introduction

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

Prototype

public ArrayType getType() 

Source Link

Document

Returns the array type in this array creation 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  .j a  v  a  2 s  . c  om*/
    }
    // 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());//from  ww w. ja  va2  s  .  co  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  . jav  a 2s. 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.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 {/*from w  w  w. j  av  a 2 s . c om*/
        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 ww  w.j  av a2  s .c om*/
            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.j2cpp.translate.JavaToIOSTypeConverter.java

License:Open Source License

@Override
public boolean visit(ArrayCreation node) {
    ArrayType type = node.getType();
    Type newType = Types.makeIOSType(type);
    if (newType != null) {
        type.setComponentType(newType);/*  ww  w. ja v  a2  s . c o m*/
    }
    return super.visit(node);
}

From source file:com.google.devtools.j2objc.ast.DebugASTPrinter.java

License:Apache License

@Override
public boolean visit(ArrayCreation node) {
    sb.print("new ");
    node.getType().accept(this);
    for (Expression dim : node.getDimensions()) {
        sb.print('[');
        dim.accept(this);
        sb.print(']');
    }//from w  w  w . jav a2 s  . co m
    int emptyDims = node.getTypeBinding().getDimensions() - node.getDimensions().size();
    for (int i = 0; i < emptyDims; i++) {
        sb.print("[]");
    }
    if (node.getInitializer() != null) {
        node.getInitializer().accept(this);
    }
    return false;
}

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

License:Apache License

/** Visitor method for {@link ArrayCreation}s. */
@Override//from ww w. j  a  va 2  s . 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:java5totext.input.JDTVisitor.java

License:Open Source License

@Override
public void endVisit(org.eclipse.jdt.core.dom.ArrayCreation node) {
    ArrayCreation element = (ArrayCreation) this.binding.get(node);
    this.initializeNode(element, node);

    if (this.binding.get(node.getType()) != null)
        element.setType((NamedElementRef) this.binding.get(node.getType()));
    for (Iterator<?> i = node.dimensions().iterator(); i.hasNext();) {
        Expression itElement = (Expression) this.binding.get(i.next());
        if (itElement != null)
            element.getDimensions().add(itElement);
    }/*from   w  ww  .j a va 2  s  .  c o m*/
    if (this.binding.get(node.getInitializer()) != null)
        element.setInitializer((ArrayInitializer) this.binding.get(node.getInitializer()));
}

From source file:lang.java.jdt.internal.JdtAstToRascalAstConverter.java

License:Open Source License

public boolean visit(ArrayCreation node) {
    IValue type = visitChild(node.getType().getElementType());

    IValueList dimensions = new IValueList(values);
    for (Iterator it = node.dimensions().iterator(); it.hasNext();) {
        Expression e = (Expression) it.next();
        dimensions.add(visitChild(e));/*from   w w  w. ja  va2  s  . co m*/
    }

    IValue initializer = node.getInitializer() == null ? null : visitChild(node.getInitializer());

    ownValue = constructRascalNode(node, type, dimensions.asList(), optional(initializer));
    return false;
}