public ExpressionTree newAnnotatedParameterizedIdentifier( Optional<List<AnnotationTreeImpl>> annotations, InternalSyntaxToken identifierToken, Optional<TypeArgumentListTreeImpl> typeArguments) { List<AnnotationTree> annotationList = ImmutableList.copyOf(annotations.or(ImmutableList.of())); ExpressionTree result = new IdentifierTreeImpl(identifierToken); if (typeArguments.isPresent()) { result = new ParameterizedTypeTreeImpl((TypeTree) result, typeArguments.get()); } ((JavaTree.AnnotatedTypeTree) result).complete(annotationList); return result; }
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()); } } }
public <T extends Tree> T newQualifiedIdentifier(ExpressionTree firstIdentifier, Optional<List<Tuple<InternalSyntaxToken, ExpressionTree>>> rests) { ExpressionTree result = firstIdentifier; if (rests.isPresent()) { for (Tuple<InternalSyntaxToken, ExpressionTree> rest : rests.get()) { InternalSyntaxToken dotToken = rest.first(); if (rest.second().is(Kind.IDENTIFIER)) { result = new MemberSelectExpressionTreeImpl(result, dotToken, (IdentifierTreeImpl) rest.second()); } else if (rest.second().is(Kind.PARAMETERIZED_TYPE)) { ParameterizedTypeTreeImpl parameterizedType = (ParameterizedTypeTreeImpl) rest.second(); IdentifierTreeImpl identifier = (IdentifierTreeImpl) parameterizedType.type(); result = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); result = new ParameterizedTypeTreeImpl((TypeTree) result, (TypeArgumentListTreeImpl) parameterizedType.typeArguments()); } else { throw new IllegalArgumentException(); } } moveAnnotations(result, firstIdentifier); } return (T) result; }
public <T extends Tree> T newQualifiedIdentifier(ExpressionTree firstIdentifier, Optional<List<Tuple<InternalSyntaxToken, ExpressionTree>>> rests) { ExpressionTree result = firstIdentifier; if (rests.isPresent()) { for (Tuple<InternalSyntaxToken, ExpressionTree> rest : rests.get()) { InternalSyntaxToken dotToken = rest.first(); if (rest.second().is(Kind.IDENTIFIER)) { result = new MemberSelectExpressionTreeImpl(result, dotToken, (IdentifierTreeImpl) rest.second()); } else if (rest.second().is(Kind.PARAMETERIZED_TYPE)) { ParameterizedTypeTreeImpl parameterizedType = (ParameterizedTypeTreeImpl) rest.second(); IdentifierTreeImpl identifier = (IdentifierTreeImpl) parameterizedType.type(); result = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); result = new ParameterizedTypeTreeImpl((TypeTree) result, (TypeArgumentListTreeImpl) parameterizedType.typeArguments()); } else { throw new IllegalArgumentException(); } } moveAnnotations((TypeTree) result, (TypeTree) firstIdentifier); } return (T) result; }
public <T extends Tree> T newQualifiedIdentifier(ExpressionTree firstIdentifier, Optional<List<Tuple<InternalSyntaxToken, ExpressionTree>>> rests) { ExpressionTree result = firstIdentifier; if (rests.isPresent()) { for (Tuple<InternalSyntaxToken, ExpressionTree> rest : rests.get()) { InternalSyntaxToken dotToken = rest.first(); if (rest.second().is(Kind.IDENTIFIER)) { result = new MemberSelectExpressionTreeImpl(result, dotToken, (IdentifierTreeImpl) rest.second()); } else if (rest.second().is(Kind.PARAMETERIZED_TYPE)) { ParameterizedTypeTreeImpl parameterizedType = (ParameterizedTypeTreeImpl) rest.second(); IdentifierTreeImpl identifier = (IdentifierTreeImpl) parameterizedType.type(); result = new MemberSelectExpressionTreeImpl(result, dotToken, identifier); result = new ParameterizedTypeTreeImpl((TypeTree) result, (TypeArgumentListTreeImpl) parameterizedType.typeArguments()); } else { throw new IllegalArgumentException(); } } moveAnnotations((TypeTree) result, (TypeTree) firstIdentifier); } return (T) result; }
public <T extends Tree> T newQualifiedIdentifier(ExpressionTree firstIdentifier, Optional<List<Tuple<AstNode, ExpressionTree>>> rests) { ExpressionTree result = firstIdentifier; if (rests.isPresent()) { for (Tuple<AstNode, ExpressionTree> rest : rests.get()) { if (rest.second().is(Kind.IDENTIFIER)) { result = new MemberSelectExpressionTreeImpl(result, (IdentifierTreeImpl) rest.second(), (AstNode) result, rest.first(), (AstNode) rest.second()); } else if (rest.second().is(Kind.PARAMETERIZED_TYPE)) { ParameterizedTypeTreeImpl parameterizedType = (ParameterizedTypeTreeImpl) rest.second(); IdentifierTreeImpl identifier = (IdentifierTreeImpl) parameterizedType.type(); result = new MemberSelectExpressionTreeImpl(result, identifier, (AstNode) result, rest.first(), identifier); result = new ParameterizedTypeTreeImpl((TypeTree) result, (TypeArgumentListTreeImpl) parameterizedType.typeArguments()); } else { throw new IllegalArgumentException(); } } } return (T) result; }
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 newAnnotatedParameterizedIdentifier( Optional<List<AnnotationTreeImpl>> annotations, AstNode identifierAstNode, Optional<TypeArgumentListTreeImpl> typeArguments) { ExpressionTree result = new IdentifierTreeImpl(InternalSyntaxToken.create(identifierAstNode)); if (annotations.isPresent()) { ((JavaTree) result).prependChildren(annotations.get()); } if (typeArguments.isPresent()) { result = new ParameterizedTypeTreeImpl((TypeTree) result, typeArguments.get()); } return result; }
public ExpressionTree newAnnotatedParameterizedIdentifier( Optional<List<AnnotationTreeImpl>> annotations, InternalSyntaxToken identifierToken, Optional<TypeArgumentListTreeImpl> typeArguments) { List<AnnotationTree> annotationList = annotations.isPresent() ? ImmutableList.<AnnotationTree>builder().addAll(annotations.get()).build() : ImmutableList.<AnnotationTree>of(); ExpressionTree result = new IdentifierTreeImpl(identifierToken); if (typeArguments.isPresent()) { result = new ParameterizedTypeTreeImpl((TypeTree) result, typeArguments.get()).complete(annotationList); } else { result = ((IdentifierTreeImpl) result).complete(annotationList); } return result; }
public ExpressionTree newAnnotatedParameterizedIdentifier( Optional<List<AnnotationTreeImpl>> annotations, InternalSyntaxToken identifierToken, Optional<TypeArgumentListTreeImpl> typeArguments) { List<AnnotationTree> annotationList = ImmutableList.copyOf(annotations.or(ImmutableList.of())); ExpressionTree result = new IdentifierTreeImpl(identifierToken); if (typeArguments.isPresent()) { result = new ParameterizedTypeTreeImpl((TypeTree) result, typeArguments.get()); } ((JavaTree.AnnotatedTypeTree) result).complete(annotationList); return result; }