Java 类org.eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference 实例源码

项目:Eclipse-Postfix-Code-Completion    文件:DefaultBindingResolver.java   
private int getTypeCount(ParameterizedQualifiedTypeReference typeReference) {
    TypeReference[][] typeArguments = typeReference.typeArguments;
    int value = 0;
    org.eclipse.jdt.internal.compiler.ast.Annotation[][] typeAnnotations = typeReference.annotations;
    int length = typeReference.tokens.length;   
    for (int i = 0; i < length; ++i) {
        if (value != 0 || (typeArguments != null && typeArguments[i] != null) ||
            (typeAnnotations != null && typeAnnotations[i] != null )) {
            value++;
        }
    }
    return value;
}
项目:Eclipse-Postfix-Code-Completion    文件:ProblemReporter.java   
private int nodeSourceStart(Binding field, ASTNode node, int index) {
    if (node instanceof FieldReference) {
        FieldReference fieldReference = (FieldReference) node;
        return (int) (fieldReference.nameSourcePosition >> 32);
    } else  if (node instanceof QualifiedNameReference) {
        QualifiedNameReference ref = (QualifiedNameReference) node;
        if (ref.binding == field) {
            if (index == 0) {
                return (int) (ref.sourcePositions[ref.indexOfFirstFieldBinding-1] >> 32);
            } else {
                return (int) (ref.sourcePositions[index] >> 32);
            }
        }
        FieldBinding[] otherFields = ref.otherBindings;
        if (otherFields != null) {
            int offset = ref.indexOfFirstFieldBinding;
            if (index != 0) {
                for (int i = 0, length = otherFields.length; i < length; i++) {
                    if ((otherFields[i] == field) && (i + offset == index)) {
                        return (int) (ref.sourcePositions[i + offset] >> 32);
                    }
                }
            } else {
                for (int i = 0, length = otherFields.length; i < length; i++) {
                    if (otherFields[i] == field) {
                        return (int) (ref.sourcePositions[i + offset] >> 32);
                    }
                }
            }
        }
    } else if (node instanceof ParameterizedQualifiedTypeReference) {
        ParameterizedQualifiedTypeReference reference = (ParameterizedQualifiedTypeReference) node;
        return (int) (reference.sourcePositions[0]>>>32);
    }
    return node.sourceStart;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:DefaultBindingResolver.java   
private int getTypeArguments(ParameterizedQualifiedTypeReference typeReference) {
    TypeReference[][] typeArguments = typeReference.typeArguments;
    int value = 0;
    for (int i = 0, max = typeArguments.length; i < max; i++) {
        if ((typeArguments[i] != null) || (value != 0)) {
            value++;
        }
    }
    return value;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:ProblemReporter.java   
private int nodeSourceStart(Binding field, ASTNode node, int index) {
    if (node instanceof FieldReference) {
        FieldReference fieldReference = (FieldReference) node;
        return (int) (fieldReference.nameSourcePosition >> 32);
    } else  if (node instanceof QualifiedNameReference) {
        QualifiedNameReference ref = (QualifiedNameReference) node;
        if (ref.binding == field) {
            if (index == 0) {
                return (int) (ref.sourcePositions[ref.indexOfFirstFieldBinding-1] >> 32);
            } else {
                return (int) (ref.sourcePositions[index] >> 32);
            }
        }
        FieldBinding[] otherFields = ref.otherBindings;
        if (otherFields != null) {
            int offset = ref.indexOfFirstFieldBinding;
            if (index != 0) {
                for (int i = 0, length = otherFields.length; i < length; i++) {
                    if ((otherFields[i] == field) && (i + offset == index)) {
                        return (int) (ref.sourcePositions[i + offset] >> 32);
                    }
                }
            } else {
                for (int i = 0, length = otherFields.length; i < length; i++) {
                    if (otherFields[i] == field) {
                        return (int) (ref.sourcePositions[i + offset] >> 32);
                    }
                }
            }
        }
    } else if (node instanceof ParameterizedQualifiedTypeReference) {
        ParameterizedQualifiedTypeReference reference = (ParameterizedQualifiedTypeReference) node;
        return (int) (reference.sourcePositions[0]>>>32);
    }
    return node.sourceStart;
}
项目:lombok-ianchiu    文件:HandleBuilder.java   
/**
 * Returns the explicitly requested singular annotation on this node (field
 * or parameter), or null if there's no {@code @Singular} annotation on it.
 * 
 * @param node The node (field or method param) to inspect for its name and potential {@code @Singular} annotation.
 */
private SingularData getSingularData(EclipseNode node, ASTNode source) {
    for (EclipseNode child : node.down()) {
        if (!annotationTypeMatches(Singular.class, child)) continue;
        char[] pluralName = node.getKind() == Kind.FIELD ? removePrefixFromField(node) : ((AbstractVariableDeclaration) node.get()).name;
        AnnotationValues<Singular> ann = createAnnotation(Singular.class, child);
        String explicitSingular = ann.getInstance().value();
        if (explicitSingular.isEmpty()) {
            if (Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.SINGULAR_AUTO))) {
                node.addError("The singular must be specified explicitly (e.g. @Singular(\"task\")) because auto singularization is disabled.");
                explicitSingular = new String(pluralName);
            } else {
                explicitSingular = autoSingularize(new String(pluralName));
                if (explicitSingular == null) {
                    node.addError("Can't singularize this name; please specify the singular explicitly (i.e. @Singular(\"sheep\"))");
                    explicitSingular = new String(pluralName);
                }
            }
        }
        char[] singularName = explicitSingular.toCharArray();

        TypeReference type = ((AbstractVariableDeclaration) node.get()).type;
        TypeReference[] typeArgs = null;
        String typeName;
        if (type instanceof ParameterizedSingleTypeReference) {
            typeArgs = ((ParameterizedSingleTypeReference) type).typeArguments;
            typeName = new String(((ParameterizedSingleTypeReference) type).token);
        } else if (type instanceof ParameterizedQualifiedTypeReference) {
            TypeReference[][] tr = ((ParameterizedQualifiedTypeReference) type).typeArguments;
            if (tr != null) typeArgs = tr[tr.length - 1];
            char[][] tokens = ((ParameterizedQualifiedTypeReference) type).tokens;
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < tokens.length; i++) {
                if (i > 0) sb.append(".");
                sb.append(tokens[i]);
            }
            typeName = sb.toString();
        } else {
            typeName = type.toString();
        }

        String targetFqn = EclipseSingularsRecipes.get().toQualified(typeName);
        EclipseSingularizer singularizer = EclipseSingularsRecipes.get().getSingularizer(targetFqn);
        if (singularizer == null) {
            node.addError("Lombok does not know how to create the singular-form builder methods for type '" + typeName + "'; they won't be generated.");
            return null;
        }

        return new SingularData(child, singularName, pluralName, typeArgs == null ? Collections.<TypeReference>emptyList() : Arrays.asList(typeArgs), targetFqn, singularizer, source);
    }

    return null;
}
项目:lombok-ianchiu    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(ParameterizedQualifiedTypeReference node, BlockScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:lombok-ianchiu    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(ParameterizedQualifiedTypeReference node, ClassScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:EasyMPermission    文件:HandleBuilder.java   
/**
 * Returns the explicitly requested singular annotation on this node (field
 * or parameter), or null if there's no {@code @Singular} annotation on it.
 * 
 * @param node The node (field or method param) to inspect for its name and potential {@code @Singular} annotation.
 */
private SingularData getSingularData(EclipseNode node, ASTNode source) {
    for (EclipseNode child : node.down()) {
        if (child.getKind() == Kind.ANNOTATION && annotationTypeMatches(Singular.class, child)) {
            char[] pluralName = node.getKind() == Kind.FIELD ? removePrefixFromField(node) : ((AbstractVariableDeclaration) node.get()).name;
            AnnotationValues<Singular> ann = createAnnotation(Singular.class, child);
            String explicitSingular = ann.getInstance().value();
            if (explicitSingular.isEmpty()) {
                if (Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.SINGULAR_AUTO))) {
                    node.addError("The singular must be specified explicitly (e.g. @Singular(\"task\")) because auto singularization is disabled.");
                    explicitSingular = new String(pluralName);
                } else {
                    explicitSingular = autoSingularize(node.getName());
                    if (explicitSingular == null) {
                        node.addError("Can't singularize this name; please specify the singular explicitly (i.e. @Singular(\"sheep\"))");
                        explicitSingular = new String(pluralName);
                    }
                }
            }
            char[] singularName = explicitSingular.toCharArray();

            TypeReference type = ((AbstractVariableDeclaration) node.get()).type;
            TypeReference[] typeArgs = null;
            String typeName;
            if (type instanceof ParameterizedSingleTypeReference) {
                typeArgs = ((ParameterizedSingleTypeReference) type).typeArguments;
                typeName = new String(((ParameterizedSingleTypeReference) type).token);
            } else if (type instanceof ParameterizedQualifiedTypeReference) {
                TypeReference[][] tr = ((ParameterizedQualifiedTypeReference) type).typeArguments;
                if (tr != null) typeArgs = tr[tr.length - 1];
                char[][] tokens = ((ParameterizedQualifiedTypeReference) type).tokens;
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < tokens.length; i++) {
                    if (i > 0) sb.append(".");
                    sb.append(tokens[i]);
                }
                typeName = sb.toString();
            } else {
                typeName = type.toString();
            }

            String targetFqn = EclipseSingularsRecipes.get().toQualified(typeName);
            EclipseSingularizer singularizer = EclipseSingularsRecipes.get().getSingularizer(targetFqn);
            if (singularizer == null) {
                node.addError("Lombok does not know how to create the singular-form builder methods for type '" + typeName + "'; they won't be generated.");
                return null;
            }

            return new SingularData(child, singularName, pluralName, typeArgs == null ? Collections.<TypeReference>emptyList() : Arrays.asList(typeArgs), targetFqn, singularizer, source);
        }
    }

    return null;
}
项目:EasyMPermission    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(ParameterizedQualifiedTypeReference node, BlockScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:EasyMPermission    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(ParameterizedQualifiedTypeReference node, ClassScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:Eclipse-Postfix-Code-Completion    文件:CodeFormatterVisitor.java   
public boolean visit(
        ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference,
        BlockScope scope) {
    final int numberOfParens = (parameterizedQualifiedTypeReference.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        manageOpeningParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    TypeReference[][] typeArguments = parameterizedQualifiedTypeReference.typeArguments;
    int length = typeArguments.length;
    for (int i = 0; i < length; i++) {
        if (parameterizedQualifiedTypeReference.annotations != null) {
            formatInlineAnnotations(parameterizedQualifiedTypeReference.annotations[i], false);
        }
        this.scribe.printNextToken(TerminalTokens.TokenNameIdentifier);
        TypeReference[] typeArgument = typeArguments[i];
        if (typeArgument != null) {
            int typeArgumentLength = typeArgument.length;
            if (typeArgumentLength > 0) {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                if (this.preferences.insert_space_after_opening_angle_bracket_in_parameterized_type_reference) {
                    this.scribe.space();
                }
                for (int j = 0; j < typeArgumentLength - 1; j++) {
                    typeArgument[j].traverse(this, scope);
                    this.scribe.printNextToken(TerminalTokens.TokenNameCOMMA, this.preferences.insert_space_before_comma_in_parameterized_type_reference);
                    if (this.preferences.insert_space_after_comma_in_parameterized_type_reference) {
                        this.scribe.space();
                    }
                }
                typeArgument[typeArgumentLength - 1].traverse(this, scope);
                if (isClosingGenericToken()) {
                    this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS, this.preferences.insert_space_before_closing_angle_bracket_in_parameterized_type_reference);
                }
            } else {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS);
            }
        }
        if (i < length - 1) {
            this.scribe.printNextToken(TerminalTokens.TokenNameDOT);
        }
    }
    formatLeadingDimensions(parameterizedQualifiedTypeReference);
    if (numberOfParens > 0) {
        manageClosingParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    return false;
}
项目:Eclipse-Postfix-Code-Completion    文件:CodeFormatterVisitor.java   
public boolean visit(
        ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference,
        ClassScope scope) {
    final int numberOfParens = (parameterizedQualifiedTypeReference.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        manageOpeningParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    TypeReference[][] typeArguments = parameterizedQualifiedTypeReference.typeArguments;
    int length = typeArguments.length;
    for (int i = 0; i < length; i++) {
        if (parameterizedQualifiedTypeReference.annotations != null) {
            formatInlineAnnotations(parameterizedQualifiedTypeReference.annotations[i], false);
        }
        this.scribe.printNextToken(TerminalTokens.TokenNameIdentifier);
        TypeReference[] typeArgument = typeArguments[i];
        if (typeArgument != null) {
            int typeArgumentLength = typeArgument.length;
            if (typeArgumentLength > 0) {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                if (this.preferences.insert_space_after_opening_angle_bracket_in_parameterized_type_reference) {
                    this.scribe.space();
                }
                for (int j = 0; j < typeArgumentLength - 1; j++) {
                    typeArgument[j].traverse(this, scope);
                    this.scribe.printNextToken(TerminalTokens.TokenNameCOMMA, this.preferences.insert_space_before_comma_in_parameterized_type_reference);
                    if (this.preferences.insert_space_after_comma_in_parameterized_type_reference) {
                        this.scribe.space();
                    }
                }
                typeArgument[typeArgumentLength - 1].traverse(this, scope);
                if (isClosingGenericToken()) {
                    this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS, this.preferences.insert_space_before_closing_angle_bracket_in_parameterized_type_reference);
                }
            } else {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS);
            }
        }
        if (i < length - 1) {
            this.scribe.printNextToken(TerminalTokens.TokenNameDOT);
        }
    }
    formatLeadingDimensions(parameterizedQualifiedTypeReference);
    if (numberOfParens > 0) {
        manageClosingParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:CodeFormatterVisitor.java   
public boolean visit(
        ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference,
        BlockScope scope) {
    final int numberOfParens = (parameterizedQualifiedTypeReference.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        manageOpeningParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    TypeReference[][] typeArguments = parameterizedQualifiedTypeReference.typeArguments;
    int length = typeArguments.length;
    for (int i = 0; i < length; i++) {
        this.scribe.printNextToken(TerminalTokens.TokenNameIdentifier);
        TypeReference[] typeArgument = typeArguments[i];
        if (typeArgument != null) {
            int typeArgumentLength = typeArgument.length;
            if (typeArgumentLength > 0) {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                if (this.preferences.insert_space_after_opening_angle_bracket_in_parameterized_type_reference) {
                    this.scribe.space();
                }
                for (int j = 0; j < typeArgumentLength - 1; j++) {
                    typeArgument[j].traverse(this, scope);
                    this.scribe.printNextToken(TerminalTokens.TokenNameCOMMA, this.preferences.insert_space_before_comma_in_parameterized_type_reference);
                    if (this.preferences.insert_space_after_comma_in_parameterized_type_reference) {
                        this.scribe.space();
                    }
                }
                typeArgument[typeArgumentLength - 1].traverse(this, scope);
                if (isClosingGenericToken()) {
                    this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS, this.preferences.insert_space_before_closing_angle_bracket_in_parameterized_type_reference);
                }
            } else {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS);
            }
        }
        if (i < length - 1) {
            this.scribe.printNextToken(TerminalTokens.TokenNameDOT);
        }
    }
    int dimensions = getDimensions();
    if (dimensions != 0 && dimensions <= parameterizedQualifiedTypeReference.dimensions()) {
        if (this.preferences.insert_space_before_opening_bracket_in_array_type_reference) {
            this.scribe.space();
        }
        for (int i = 0; i < dimensions; i++) {
            this.scribe.printNextToken(TerminalTokens.TokenNameLBRACKET);
            if (this.preferences.insert_space_between_brackets_in_array_type_reference) {
                this.scribe.space();
            }
            this.scribe.printNextToken(TerminalTokens.TokenNameRBRACKET);
        }
    }
    if (numberOfParens > 0) {
        manageClosingParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:CodeFormatterVisitor.java   
public boolean visit(
        ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference,
        ClassScope scope) {
    final int numberOfParens = (parameterizedQualifiedTypeReference.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;
    if (numberOfParens > 0) {
        manageOpeningParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    TypeReference[][] typeArguments = parameterizedQualifiedTypeReference.typeArguments;
    int length = typeArguments.length;
    for (int i = 0; i < length; i++) {
        this.scribe.printNextToken(TerminalTokens.TokenNameIdentifier);
        TypeReference[] typeArgument = typeArguments[i];
        if (typeArgument != null) {
            int typeArgumentLength = typeArgument.length;
            if (typeArgumentLength > 0) {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                if (this.preferences.insert_space_after_opening_angle_bracket_in_parameterized_type_reference) {
                    this.scribe.space();
                }
                for (int j = 0; j < typeArgumentLength - 1; j++) {
                    typeArgument[j].traverse(this, scope);
                    this.scribe.printNextToken(TerminalTokens.TokenNameCOMMA, this.preferences.insert_space_before_comma_in_parameterized_type_reference);
                    if (this.preferences.insert_space_after_comma_in_parameterized_type_reference) {
                        this.scribe.space();
                    }
                }
                typeArgument[typeArgumentLength - 1].traverse(this, scope);
                if (isClosingGenericToken()) {
                    this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS, this.preferences.insert_space_before_closing_angle_bracket_in_parameterized_type_reference);
                }
            } else {
                this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_parameterized_type_reference);
                this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS);
            }
        }
        if (i < length - 1) {
            this.scribe.printNextToken(TerminalTokens.TokenNameDOT);
        }
    }
    int dimensions = getDimensions();
    if (dimensions != 0 && dimensions <= parameterizedQualifiedTypeReference.dimensions()) {
        if (this.preferences.insert_space_before_opening_bracket_in_array_type_reference) {
            this.scribe.space();
        }
        for (int i = 0; i < dimensions; i++) {
            this.scribe.printNextToken(TerminalTokens.TokenNameLBRACKET);
            if (this.preferences.insert_space_between_brackets_in_array_type_reference) {
                this.scribe.space();
            }
            this.scribe.printNextToken(TerminalTokens.TokenNameRBRACKET);
        }
    }
    if (numberOfParens > 0) {
        manageClosingParenthesizedExpression(parameterizedQualifiedTypeReference, numberOfParens);
    }
    return false;
}
项目:lombok    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(ParameterizedQualifiedTypeReference node, BlockScope scope) {
    setGeneratedBy(node, source);
    applyOffsetQualifiedTypeReference(node);
    return super.visit(node, scope);
}
项目:lombok    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(ParameterizedQualifiedTypeReference node, ClassScope scope) {
    setGeneratedBy(node, source);
    applyOffsetQualifiedTypeReference(node);
    return super.visit(node, scope);
}