public TypeTree newType(TypeTree basicOrClassType, Optional<List<AstNode>> dims) { if (!dims.isPresent()) { return basicOrClassType; } else { TypeTree result = basicOrClassType; for (AstNode dim : dims.get()) { List<AstNode> children = Lists.newArrayList(); children.add((AstNode) result); children.addAll(dim.getChildren()); result = new ArrayTypeTreeImpl(result, children); } return result; } }
public ArrayTypeTreeImpl(@Nullable TypeTree type, List<AnnotationTreeImpl> annotations, InternalSyntaxToken ellispsisToken) { super(Kind.ARRAY_TYPE); this.type = type; this.annotations = getAnnotations(annotations); this.openBracketToken = null; this.closeBracketToken = null; this.ellipsisToken = ellispsisToken; }
private static TypeTree applyDim(TypeTree expression, @Nullable ArrayTypeTreeImpl dim) { if (dim != null) { dim.setLastChildType(expression); return dim; } else { return expression; } }
private static void completeTypeTreeWithAnnotations(TypeTree type, List<AnnotationTree> typeAnnotations) { if (type.is(Tree.Kind.IDENTIFIER)) { ((IdentifierTreeImpl) type).complete(typeAnnotations); } else if (type.is(Tree.Kind.MEMBER_SELECT)) { ((MemberSelectExpressionTreeImpl) type).complete(typeAnnotations); } else if (type.is(Tree.Kind.PARAMETERIZED_TYPE)) { ((ParameterizedTypeTreeImpl) type).complete(typeAnnotations); } else if (type.is(Kind.ARRAY_TYPE)) { ((ArrayTypeTreeImpl) type).complete(typeAnnotations); } else { ((PrimitiveTypeTreeImpl) type).complete(typeAnnotations); } } }
@CheckForNull private static ArrayTypeTreeImpl newArrayTypeTree(Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dims) { ArrayTypeTreeImpl result = null; if (dims.isPresent()) { for (Tuple<InternalSyntaxToken, InternalSyntaxToken> dim : dims.get()) { InternalSyntaxToken openBracketToken = dim.first(); InternalSyntaxToken closeBracketToken = dim.second(); result = new ArrayTypeTreeImpl(result, ImmutableList.<AnnotationTreeImpl>of(), openBracketToken, closeBracketToken); } } return result; }
public FormalParametersListTreeImpl newVariableArgumentFormalParameter(Optional<List<AnnotationTreeImpl>> annotations, InternalSyntaxToken ellipsisToken, VariableTreeImpl variable) { variable.addEllipsisDimension(new ArrayTypeTreeImpl(null, annotations.or(ImmutableList.<AnnotationTreeImpl>of()), ellipsisToken)); return new FormalParametersListTreeImpl( annotations.or(ImmutableList.<AnnotationTreeImpl>of()), ellipsisToken, variable); }
private static ArrayTypeTreeImpl newArrayTypeTreeWithAnnotations(TypeTree type, Tuple<Optional<List<AnnotationTreeImpl>>, Tuple<InternalSyntaxToken, InternalSyntaxToken>> dim) { List<AnnotationTreeImpl> annotations = dim.first().or(ImmutableList.<AnnotationTreeImpl>of()); InternalSyntaxToken openBracketToken = dim.second().first(); InternalSyntaxToken closeBracketToken = dim.second().second(); return new ArrayTypeTreeImpl(type, annotations, openBracketToken, closeBracketToken); }
public void addEllipsisDimension(ArrayTypeTreeImpl dimension) { vararg = true; if (nestedDimensions != null) { nestedDimensions.setLastChildType(dimension); } else { nestedDimensions = dimension; } }
public VariableTreeImpl completeType(TypeTree type) { TypeTree actualType = type; if (nestedDimensions != null) { nestedDimensions.setLastChildType(type); actualType = nestedDimensions; } this.type = actualType; return this; }
public void setLastChildType(TypeTree type) { ArrayTypeTree childType = this; while (childType.type() != null && childType.is(Tree.Kind.ARRAY_TYPE)) { childType = (ArrayTypeTree) childType.type(); } ((ArrayTypeTreeImpl) childType).completeType(type); }
private static TypeTree applyDim(TypeTree expression, @Nullable ArrayTypeTreeImpl dim) { if (dim != null) { dim.setLastChildType(expression); return dim; } else { return expression; } }
public FormalParametersListTreeImpl newVariableArgumentFormalParameter(Optional<List<AnnotationTreeImpl>> annotations, InternalSyntaxToken ellipsisToken, VariableTreeImpl variable) { variable.addEllipsisDimension(new ArrayTypeTreeImpl(null, annotations.or(ImmutableList.<AnnotationTreeImpl>of()), ellipsisToken)); return new FormalParametersListTreeImpl( annotations.or(ImmutableList.<AnnotationTreeImpl>of()), ellipsisToken, variable); }
public MemberSelectExpressionTreeImpl completeWithExpression(ExpressionTree expression) { Preconditions.checkState(this.expression == null); ExpressionTree result = expression; if (nestedDimensions != null) { nestedDimensions.setLastChildType((TypeTree) expression); result = nestedDimensions; } this.expression = result; return this; }
public ArrayTypeTreeImpl(@Nullable TypeTree type, List<AnnotationTreeImpl> annotations, InternalSyntaxToken ellispsisToken) { super(Kind.ARRAY_TYPE); this.type = type; this.annotations = getAnnotations(annotations); this.openBracketToken = null; this.closeBracketToken = null; this.ellipsisToken = ellispsisToken; }
public MemberSelectExpressionTreeImpl completeWithExpression(ExpressionTree expression) { Preconditions.checkState(this.expression == null); ExpressionTree result = expression; if (nestedDimensions != null) { nestedDimensions.setLastChildType((TypeTree) expression); result = nestedDimensions; } this.expression = result; return this; }
public void addEllipsisDimension(ArrayTypeTreeImpl dimension) { vararg = true; if (nestedDimensions != null) { nestedDimensions.setLastChildType(dimension); } else { nestedDimensions = dimension; } }
public MemberSelectExpressionTreeImpl completeWithExpression(ExpressionTree expression) { Preconditions.checkState(dims >= 0 && this.expression == null); ExpressionTree result = expression; // TODO Remove logic? for (int i = 0; i < dims; i++) { result = new ArrayTypeTreeImpl(null, (TypeTree) result); } this.expression = result; return this; }
private TypeTree applyDim(TypeTree expression, int count) { TypeTree result = expression; for (int i = 0; i < count; i++) { result = new JavaTree.ArrayTypeTreeImpl(/* FIXME should not be null */null, result); } return result; }
@CheckForNull private static ArrayTypeTreeImpl newArrayTypeTree(Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dims) { ArrayTypeTreeImpl result = null; if (dims.isPresent()) { for (Tuple<InternalSyntaxToken, InternalSyntaxToken> dim : dims.get()) { InternalSyntaxToken openBracketToken = dim.first(); InternalSyntaxToken closeBracketToken = dim.second(); result = new ArrayTypeTreeImpl(result, ImmutableList.<AnnotationTreeImpl>of(), openBracketToken, closeBracketToken); } } return result; }
public VariableTreeImpl completeIdentifierAndDims(IdentifierTreeImpl simpleName, ArrayTypeTreeImpl nestedDimensions) { this.simpleName = simpleName; if (this.nestedDimensions != null) { ArrayTypeTreeImpl newType = nestedDimensions; newType.completeType(this.nestedDimensions); this.nestedDimensions = newType; } else { this.nestedDimensions = nestedDimensions; } return this; }