List of usage examples for org.eclipse.jdt.core.dom ArrayType getDimensions
public int getDimensions()
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 av a2 s . c o 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.Java8Visitor.java
License:Apache License
protected String typeName(final ArrayType t) { String name = typeName(t.getElementType()); // FIXME JLS8: Deprecated getDimensions() and added dimensions() for (int i = 0; i < t.getDimensions(); i++) name += "[]"; return name;// w ww . j ava2 s . c o m }
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.j ava 2 s.c om*/ } // 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.ArrayType node) { TypeName elementType = translate(node.getElementType()); int dimensions = node.getDimensions(); return done(listType(elementType, dimensions)); }
From source file:de.akra.idocit.java.services.ReflectionHelper.java
License:Apache License
/** * Returns the identifier from the {@link Type} depending on the containing type. * /*w ww .java 2s . c o m*/ * @param type * [SOURCE] * * @return [OBJECT] * @see Type * @thematicgrid Extracting Operations */ public static String extractIdentifierFrom(Type type) { switch (type.getNodeType()) { case ASTNode.PRIMITIVE_TYPE: { PrimitiveType primitiveType = (PrimitiveType) type; return primitiveType.getPrimitiveTypeCode().toString(); } case ASTNode.ARRAY_TYPE: { ArrayType arrayType = (ArrayType) type; String name = extractIdentifierFrom(arrayType.getElementType()); StringBuffer identifier = new StringBuffer(name); for (int i = 0; i < arrayType.getDimensions(); i++) { identifier.append("[]"); } return identifier.toString(); } case ASTNode.SIMPLE_TYPE: { SimpleType simpleType = (SimpleType) type; return simpleType.getName().getFullyQualifiedName(); } case ASTNode.QUALIFIED_TYPE: { QualifiedType qType = (QualifiedType) type; return extractIdentifierFrom(qType.getQualifier()) + "." + qType.getName().getIdentifier(); } case ASTNode.PARAMETERIZED_TYPE: { ParameterizedType paramType = (ParameterizedType) type; StringBuffer identifier = new StringBuffer(extractIdentifierFrom(paramType.getType())); identifier.append('<'); @SuppressWarnings("unchecked") Iterator<Type> iterTypeArgs = (Iterator<Type>) paramType.typeArguments().iterator(); while (iterTypeArgs.hasNext()) { Type typeArg = iterTypeArgs.next(); identifier.append(extractIdentifierFrom(typeArg)); if (iterTypeArgs.hasNext()) { identifier.append(','); } } identifier.append('>'); return identifier.toString(); } case ASTNode.WILDCARD_TYPE: { WildcardType wildcard = (WildcardType) type; String identifier = "? extends "; if (!wildcard.isUpperBound()) { identifier = "? super "; } return identifier + extractIdentifierFrom(wildcard.getBound()); } } return SignatureElement.ANONYMOUS_IDENTIFIER; }
From source file:edu.uci.ics.sourcerer.extractor.ast.ReferenceExtractorVisitor.java
License:Open Source License
@SuppressWarnings("unchecked") private String getTypeFqn(Type type) { if (type == null) { logger.log(Level.SEVERE, "Attempt to get type fqn of null type!"); throw new NullPointerException("Attempt to get type fqn of null type!"); }//from w w w. j a va 2 s . c o m ITypeBinding binding = type.resolveBinding(); if (binding == null) { if (type.isPrimitiveType()) { return ((PrimitiveType) type).getPrimitiveTypeCode().toString(); } else if (type.isSimpleType()) { return getUnknownFqn(((SimpleType) type).getName().getFullyQualifiedName()); } else if (type.isArrayType()) { ArrayType arrayType = (ArrayType) type; Type elementType = arrayType.getElementType(); if (elementType == null) { return getUnknownFqn(BRACKETS.substring(0, 2 * arrayType.getDimensions())); } else { return getTypeFqn(elementType) + BRACKETS.substring(0, 2 * arrayType.getDimensions()); } } else if (type.isParameterizedType()) { ParameterizedType pType = (ParameterizedType) type; StringBuilder fqn = new StringBuilder(getTypeFqn(pType.getType())); fqn.append("<"); boolean isFirst = true; for (Type arg : (List<Type>) pType.typeArguments()) { if (isFirst) { isFirst = false; } else { fqn.append(","); } try { fqn.append(getTypeFqn(arg)); } catch (NullPointerException e) { logger.log(Level.WARNING, "Eclipse NPE bug in parametrized type", e); fqn.append(UNKNOWN); } } fqn.append(">"); return fqn.toString(); } else if (type.isWildcardType()) { WildcardType wType = (WildcardType) type; Type bound = wType.getBound(); if (bound == null) { return "<?>"; } else { return "<?" + (wType.isUpperBound() ? "+" : "-") + getTypeFqn(bound) + ">"; } } else { logger.log(Level.SEVERE, "Unexpected node type for unresolved type!" + type.toString()); return UNKNOWN; } } else { return getTypeFqn(binding); } }
From source file:edu.uci.ics.sourcerer.tools.java.extractor.eclipse.ReferenceExtractorVisitor.java
License:Open Source License
private String getErasedTypeFqn(Type type) { if (type == null) { logger.log(Level.SEVERE, "Attempt to get type fqn of null type!"); throw new NullPointerException("Attempt to get type fqn of null type!"); }// w w w.ja va 2s . co m ITypeBinding binding = safeResolve(type); if (binding == null) { if (type.isPrimitiveType()) { return ((PrimitiveType) type).getPrimitiveTypeCode().toString(); } else if (type.isSimpleType()) { return createUnknownFqn(((SimpleType) type).getName().getFullyQualifiedName()); } else if (type.isArrayType()) { ArrayType arrayType = (ArrayType) type; Type elementType = arrayType.getElementType(); if (elementType == null) { return createUnknownFqn(BRACKETS.substring(0, 2 * arrayType.getDimensions())); } else { return getErasedTypeFqn(elementType) + BRACKETS.substring(0, 2 * arrayType.getDimensions()); } } else if (type.isParameterizedType()) { ParameterizedType pType = (ParameterizedType) type; return getErasedTypeFqn(pType.getType()); } else { logger.log(Level.SEVERE, "1 - Unexpected node type for unresolved type!" + type.toString()); return UNKNOWN; } } else { return getErasedTypeFqn(binding); } }
From source file:edu.uci.ics.sourcerer.tools.java.extractor.eclipse.ReferenceExtractorVisitor.java
License:Open Source License
@SuppressWarnings("unchecked") private String getTypeFqn(Type type) { if (type == null) { logger.log(Level.SEVERE, "Attempt to get type fqn of null type!"); throw new NullPointerException("Attempt to get type fqn of null type!"); }/*from w w w . j a va2 s. c o m*/ ITypeBinding binding = safeResolve(type); if (binding == null || binding.isRecovered()) { if (type.isPrimitiveType()) { return ((PrimitiveType) type).getPrimitiveTypeCode().toString(); } else if (type.isSimpleType()) { return createUnknownFqn(((SimpleType) type).getName().getFullyQualifiedName()); } else if (type.isArrayType()) { ArrayType arrayType = (ArrayType) type; Type elementType = arrayType.getElementType(); if (elementType == null) { return createUnknownFqn(BRACKETS.substring(0, 2 * arrayType.getDimensions())); } else { return getTypeFqn(elementType) + BRACKETS.substring(0, 2 * arrayType.getDimensions()); } } else if (type.isParameterizedType()) { ParameterizedType pType = (ParameterizedType) type; StringBuilder fqn = new StringBuilder(getTypeFqn(pType.getType())); fqn.append("<"); boolean isFirst = true; for (Type arg : (List<Type>) pType.typeArguments()) { if (isFirst) { isFirst = false; } else { fqn.append(","); } try { fqn.append(getTypeFqn(arg)); } catch (NullPointerException e) { logger.log(Level.WARNING, "Eclipse NPE bug in parametrized type", e); fqn.append(UNKNOWN); } } fqn.append(">"); return fqn.toString(); } else if (type.isWildcardType()) { WildcardType wType = (WildcardType) type; Type bound = wType.getBound(); if (bound == null) { return "<?>"; } else { return "<?" + (wType.isUpperBound() ? "+" : "-") + getTypeFqn(bound) + ">"; } } else { if (type.isIntersectionType()) { IntersectionType iType = (IntersectionType) type; List<Type> list_types = iType.types(); String res = ""; for (Type tt : list_types) { res += getTypeFqn(tt) + "&"; } res = res.substring(0, res.length() - 1); return res; } else { logger.log(Level.SEVERE, "2 - Unexpected node type for unresolved type!" + type.toString()); return UNKNOWN; } } } else { return getTypeFqn(binding); } }
From source file:java5totext.input.JDTVisitorUtils.java
License:Open Source License
public static void manageBindingRef(NamedElementRef element, org.eclipse.jdt.core.dom.ArrayType type, JDTVisitor visitor) {/*from ww w . j a v a2 s. c o m*/ Binding id = JDTDelegateBindingFactory.getInstance().getBindingForArrayType(type); ArrayType arrayType = (ArrayType) visitor.globalBindings.getTarget(id.toString()); if (arrayType == null) { arrayType = visitor.getFactory().createArrayType(); arrayType.setDimensions(type.getDimensions()); arrayType.setProxy(true); arrayType.setName(type.toString()); if (visitor.getBijectiveMap().get(type.getElementType()) != null) { arrayType.setElementType((NamedElementRef) visitor.getBijectiveMap().get(type.getElementType())); } visitor.getJdtModel().getOrphanTypes().add(arrayType); visitor.globalBindings.addTarget(id.toString(), arrayType); } element.setElement(arrayType); }
From source file:net.sf.eclipsecs.ui.quickfixes.misc.ArrayTypeStyleQuickfix.java
License:Open Source License
/** * {@inheritDoc}/*from w w w. j a v a2s . co m*/ */ protected ASTVisitor handleGetCorrectingASTVisitor(final IRegion lineInfo, final int markerStartOffset) { return new ASTVisitor() { public boolean visit(VariableDeclarationStatement node) { if (containsPosition(node, markerStartOffset)) { if (isCStyle(node.fragments())) { int dimensions = 0; List fragments = node.fragments(); for (int i = 0, size = fragments.size(); i < size; i++) { VariableDeclaration decl = (VariableDeclaration) fragments.get(i); if (decl.getExtraDimensions() > dimensions) { dimensions = decl.getExtraDimensions(); } decl.setExtraDimensions(0); } // wrap current type into ArrayType ArrayType arrayType = createArrayType(node.getType(), dimensions); node.setType(arrayType); } else if (isJavaStyle(node.getType())) { int dimensions = ((ArrayType) node.getType()).getDimensions(); List fragments = node.fragments(); for (int i = 0, size = fragments.size(); i < size; i++) { VariableDeclaration decl = (VariableDeclaration) fragments.get(i); decl.setExtraDimensions(dimensions); } Type elementType = (Type) ASTNode.copySubtree(node.getAST(), ((ArrayType) node.getType()).getElementType()); node.setType(elementType); } } return true; } public boolean visit(SingleVariableDeclaration node) { if (containsPosition(node, markerStartOffset)) { if (isCStyle(node)) { // wrap the existing type into an array type node.setType(createArrayType(node.getType(), node.getExtraDimensions())); node.setExtraDimensions(0); } else if (isJavaStyle(node.getType())) { ArrayType arrayType = (ArrayType) node.getType(); Type elementType = (Type) ASTNode.copySubtree(node.getAST(), arrayType.getElementType()); node.setType(elementType); node.setExtraDimensions(arrayType.getDimensions()); } } return true; } public boolean visit(FieldDeclaration node) { if (containsPosition(node, markerStartOffset)) { if (isCStyle(node.fragments())) { int dimensions = 0; List fragments = node.fragments(); for (int i = 0, size = fragments.size(); i < size; i++) { VariableDeclaration decl = (VariableDeclaration) fragments.get(i); if (decl.getExtraDimensions() > dimensions) { dimensions = decl.getExtraDimensions(); } decl.setExtraDimensions(0); } // wrap current type into ArrayType ArrayType arrayType = createArrayType(node.getType(), dimensions); node.setType(arrayType); } else if (isJavaStyle(node.getType())) { int dimensions = ((ArrayType) node.getType()).getDimensions(); List fragments = node.fragments(); for (int i = 0, size = fragments.size(); i < size; i++) { VariableDeclaration decl = (VariableDeclaration) fragments.get(i); decl.setExtraDimensions(dimensions); } Type elementType = (Type) ASTNode.copySubtree(node.getAST(), ((ArrayType) node.getType()).getElementType()); node.setType(elementType); } } return true; } private boolean isJavaStyle(Type type) { return type instanceof ArrayType; } private boolean isCStyle(VariableDeclaration decl) { return decl.getExtraDimensions() > 0; } private boolean isCStyle(List fragments) { Iterator it = fragments.iterator(); while (it.hasNext()) { VariableDeclaration decl = (VariableDeclaration) it.next(); if (isCStyle(decl)) { return true; } } return false; } private ArrayType createArrayType(Type componentType, int dimensions) { Type type = (Type) ASTNode.copySubtree(componentType.getAST(), componentType); ArrayType arrayType = componentType.getAST().newArrayType(type, dimensions); return arrayType; } }; }