public ExpressionTree newDotClassSelector(Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dimensions, InternalSyntaxToken dotToken, InternalSyntaxToken classToken) { IdentifierTreeImpl identifier = new IdentifierTreeImpl(classToken); ArrayTypeTreeImpl nestedDimensions = newArrayTypeTree(dimensions); return new MemberSelectExpressionTreeImpl(nestedDimensions, dotToken, identifier); }
public MemberSelectExpressionTreeImpl(int dims, IdentifierTreeImpl identifier, List<AstNode> children) { super(Kind.MEMBER_SELECT); this.dims = dims; this.identifier = identifier; for (AstNode child : children) { addChild(child); } }
result = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); } else { MethodInvocationTreeImpl methodInvocation = (MethodInvocationTreeImpl) selector; IdentifierTreeImpl identifier = (IdentifierTreeImpl) methodInvocation.methodSelect(); MemberSelectExpressionTreeImpl memberSelect = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); } else if (selector.is(Kind.MEMBER_SELECT)) { MemberSelectExpressionTreeImpl memberSelect = (MemberSelectExpressionTreeImpl) selector; result = memberSelect.completeWithExpression(result); } else { throw new IllegalStateException();
if (selector.is(Kind.IDENTIFIER)) { IdentifierTreeImpl identifier = (IdentifierTreeImpl) selector; result = new MemberSelectExpressionTreeImpl(result, identifier, (AstNode) result, identifier); } else if (selector.is(Kind.METHOD_INVOCATION)) { IdentifierTreeImpl identifier = (IdentifierTreeImpl) methodInvocation.methodSelect(); MemberSelectExpressionTreeImpl memberSelect = new MemberSelectExpressionTreeImpl(result, identifier, (AstNode) result, methodInvocation.getFirstChild(JavaPunctuator.DOT), identifier); } else if (selector.is(Kind.MEMBER_SELECT)) { MemberSelectExpressionTreeImpl memberSelect = (MemberSelectExpressionTreeImpl) selector; memberSelect.prependChildren((AstNode) result); result = memberSelect.completeWithExpression(result); } else { throw new IllegalStateException();
private static void moveAnnotations(ExpressionTree result, ExpressionTree firstIdentifier) { List<AnnotationTree> firstIdentifierAnnotations; boolean isParameterizedType = firstIdentifier.is(Tree.Kind.PARAMETERIZED_TYPE); if (isParameterizedType) { firstIdentifierAnnotations = ((ParameterizedTypeTree) firstIdentifier).annotations(); } else { firstIdentifierAnnotations = ((IdentifierTree) firstIdentifier).annotations(); } // move the annotations from the first identifier to the member select or the parameterized type if (!firstIdentifierAnnotations.isEmpty()) { if (result.is(Tree.Kind.MEMBER_SELECT)) { ((MemberSelectExpressionTreeImpl) result).complete(firstIdentifierAnnotations); } else { ((ParameterizedTypeTreeImpl) result).complete(firstIdentifierAnnotations); } if (isParameterizedType) { ((ParameterizedTypeTreeImpl) firstIdentifier).complete(ImmutableList.<AnnotationTree>of()); } else { ((IdentifierTreeImpl) firstIdentifier).complete(ImmutableList.<AnnotationTree>of()); } } }
result = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); } else { MethodInvocationTreeImpl methodInvocation = (MethodInvocationTreeImpl) selector; IdentifierTreeImpl identifier = (IdentifierTreeImpl) methodInvocation.methodSelect(); MemberSelectExpressionTreeImpl memberSelect = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); } else if (selector.is(Kind.MEMBER_SELECT)) { MemberSelectExpressionTreeImpl memberSelect = (MemberSelectExpressionTreeImpl) selector; result = memberSelect.completeWithExpression(result); } else { throw new IllegalStateException();
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); } } }
public ExpressionTree newDotClassSelector(Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dimensions, InternalSyntaxToken dotToken, InternalSyntaxToken classToken) { IdentifierTreeImpl identifier = new IdentifierTreeImpl(classToken); ArrayTypeTreeImpl nestedDimensions = newArrayTypeTree(dimensions); return new MemberSelectExpressionTreeImpl(nestedDimensions, dotToken, identifier); }
result = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); } else { MethodInvocationTreeImpl methodInvocation = (MethodInvocationTreeImpl) selector; IdentifierTreeImpl identifier = (IdentifierTreeImpl) methodInvocation.methodSelect(); MemberSelectExpressionTreeImpl memberSelect = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); } else if (selector.is(Kind.MEMBER_SELECT)) { MemberSelectExpressionTreeImpl memberSelect = (MemberSelectExpressionTreeImpl) selector; result = memberSelect.completeWithExpression(result); } else { throw new IllegalStateException();
public MemberSelectExpressionTreeImpl(ExpressionTree expression, IdentifierTree identifier, AstNode... children) { super(Kind.MEMBER_SELECT); this.dims = -1; this.expression = Preconditions.checkNotNull(expression); this.identifier = Preconditions.checkNotNull(identifier); for (AstNode child : children) { addChild(child); } }
public ExpressionTree newDotClassSelector(Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dimensions, InternalSyntaxToken dotToken, InternalSyntaxToken classToken) { IdentifierTreeImpl identifier = new IdentifierTreeImpl(classToken); ArrayTypeTreeImpl nestedDimensions = newArrayTypeTree(dimensions); return new MemberSelectExpressionTreeImpl(nestedDimensions, dotToken, identifier); }
public ExpressionTree voidClassExpression(AstNode voidTokenAstNode, AstNode dotToken, AstNode classTokenAstNode) { // void.class InternalSyntaxToken voidToken = InternalSyntaxToken.create(voidTokenAstNode); PrimitiveTypeTreeImpl voidType = new PrimitiveTypeTreeImpl(voidToken, ImmutableList.<AstNode>of(voidToken)); IdentifierTreeImpl classToken = new IdentifierTreeImpl(InternalSyntaxToken.create(classTokenAstNode)); return new MemberSelectExpressionTreeImpl(voidType, classToken, voidType, dotToken, classToken); }
public ExpressionTree basicClassExpression(PrimitiveTypeTreeImpl basicType, Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dimensions, InternalSyntaxToken dotToken, InternalSyntaxToken classToken) { // 15.8.2. Class Literals // int.class // int[].class IdentifierTreeImpl classIdentifier = new IdentifierTreeImpl(classToken); ArrayTypeTreeImpl nestedDimensions = newArrayTypeTree(dimensions); TypeTree typeTree = applyDim(basicType, nestedDimensions); return new MemberSelectExpressionTreeImpl((ExpressionTree) typeTree, dotToken, classIdentifier); }
public ExpressionTree basicClassExpression(PrimitiveTypeTreeImpl basicType, Optional<List<Tuple<AstNode, AstNode>>> dimensions, AstNode dotToken, AstNode classTokenAstNode) { // 15.8.2. Class Literals // int.class // int[].class IdentifierTreeImpl classToken = new IdentifierTreeImpl(InternalSyntaxToken.create(classTokenAstNode)); List<AstNode> children = Lists.newArrayList(); children.add(basicType); if (dimensions.isPresent()) { for (Tuple<AstNode, AstNode> dimension : dimensions.get()) { children.add(dimension.first()); children.add(dimension.second()); } } children.add(dotToken); children.add(classToken); TypeTree typeTree = applyDim(basicType, dimensions.isPresent() ? dimensions.get().size() : 0); return new MemberSelectExpressionTreeImpl((ExpressionTree) typeTree, classToken, children.toArray(new AstNode[children.size()])); }
public ExpressionTree basicClassExpression(PrimitiveTypeTreeImpl basicType, Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dimensions, InternalSyntaxToken dotToken, InternalSyntaxToken classToken) { // 15.8.2. Class Literals // int.class // int[].class IdentifierTreeImpl classIdentifier = new IdentifierTreeImpl(classToken); ArrayTypeTreeImpl nestedDimensions = newArrayTypeTree(dimensions); TypeTree typeTree = applyDim(basicType, nestedDimensions); return new MemberSelectExpressionTreeImpl((ExpressionTree) typeTree, dotToken, classIdentifier); }
public ExpressionTree basicClassExpression(PrimitiveTypeTreeImpl basicType, Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> dimensions, InternalSyntaxToken dotToken, InternalSyntaxToken classToken) { // 15.8.2. Class Literals // int.class // int[].class IdentifierTreeImpl classIdentifier = new IdentifierTreeImpl(classToken); ArrayTypeTreeImpl nestedDimensions = newArrayTypeTree(dimensions); TypeTree typeTree = applyDim(basicType, nestedDimensions); return new MemberSelectExpressionTreeImpl((ExpressionTree) typeTree, dotToken, classIdentifier); }
pendingChildren.add(identifier); result = new MemberSelectExpressionTreeImpl((ExpressionTree) result, identifier, pendingChildren.toArray(new AstNode[pendingChildren.size()]));
public ExpressionTree newDotClassSelector(Optional<List<Tuple<AstNode, AstNode>>> dimensions, AstNode dotTokenAstNode, AstNode classTokenAstNode) { IdentifierTreeImpl identifier = new IdentifierTreeImpl(InternalSyntaxToken.create(classTokenAstNode)); List<AstNode> children = Lists.newArrayList(); if (dimensions.isPresent()) { for (Tuple<AstNode, AstNode> dimension : dimensions.get()) { children.add(dimension.first()); children.add(dimension.second()); } } children.add(dotTokenAstNode); children.add(identifier); return new MemberSelectExpressionTreeImpl(dimensions.isPresent() ? dimensions.get().size() : 0, identifier, children); }
public TypeTree annotationIdentifier(InternalSyntaxToken firstIdentifier, Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> rests) { List<InternalSyntaxToken> children = Lists.newArrayList(); children.add(firstIdentifier); if (rests.isPresent()) { for (Tuple<InternalSyntaxToken, InternalSyntaxToken> rest : rests.get()) { children.add(rest.first()); children.add(rest.second()); } } JavaTree result = null; InternalSyntaxToken dotToken = null; for (InternalSyntaxToken child : children) { if (!child.getGrammarRuleKey().equals(JavaTokenType.IDENTIFIER)) { dotToken = child; } else { InternalSyntaxToken identifierToken = child; if (result == null) { result = new IdentifierTreeImpl(identifierToken); } else { IdentifierTreeImpl identifier = new IdentifierTreeImpl(identifierToken); result = new MemberSelectExpressionTreeImpl((ExpressionTree) result, dotToken, identifier); } } } return (TypeTree) result; }
public TypeTree annotationIdentifier(InternalSyntaxToken firstIdentifier, Optional<List<Tuple<InternalSyntaxToken, InternalSyntaxToken>>> rests) { List<InternalSyntaxToken> children = Lists.newArrayList(); children.add(firstIdentifier); if (rests.isPresent()) { for (Tuple<InternalSyntaxToken, InternalSyntaxToken> rest : rests.get()) { children.add(rest.first()); children.add(rest.second()); } } JavaTree result = null; InternalSyntaxToken dotToken = null; for (InternalSyntaxToken child : children) { if (!child.getGrammarRuleKey().equals(JavaTokenType.IDENTIFIER)) { dotToken = child; } else { InternalSyntaxToken identifierToken = child; if (result == null) { result = new IdentifierTreeImpl(identifierToken); } else { IdentifierTreeImpl identifier = new IdentifierTreeImpl(identifierToken); result = new MemberSelectExpressionTreeImpl((ExpressionTree) result, dotToken, identifier); } } } return (TypeTree) result; }