Example usage for org.eclipse.jdt.core.dom VariableDeclarationFragment VariableDeclarationFragment

List of usage examples for org.eclipse.jdt.core.dom VariableDeclarationFragment VariableDeclarationFragment

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom VariableDeclarationFragment VariableDeclarationFragment.

Prototype

VariableDeclarationFragment(AST ast) 

Source Link

Document

Creates a new AST node for a variable declaration fragment owned by the given AST.

Usage

From source file:org.eclipse.jdt.core.dom.ASTConverter.java

License:Open Source License

protected VariableDeclarationFragment convertToVariableDeclarationFragment(
        org.eclipse.jdt.internal.compiler.ast.FieldDeclaration fieldDeclaration) {
    final VariableDeclarationFragment variableDeclarationFragment = new VariableDeclarationFragment(this.ast);
    final SimpleName name = new SimpleName(this.ast);
    name.internalSetIdentifier(new String(fieldDeclaration.name));
    name.setSourceRange(fieldDeclaration.sourceStart,
            fieldDeclaration.sourceEnd - fieldDeclaration.sourceStart + 1);
    variableDeclarationFragment.setName(name);
    int start = fieldDeclaration.sourceEnd;
    int end = start;
    int extraDimensions = retrieveExtraDimension(fieldDeclaration.sourceEnd + 1,
            fieldDeclaration.declarationSourceEnd);
    variableDeclarationFragment.setExtraDimensions(extraDimensions);
    if (fieldDeclaration.initialization != null) {
        final Expression expression = convert(fieldDeclaration.initialization);
        variableDeclarationFragment.setInitializer(expression);
        start = expression.getStartPosition() + expression.getLength();
        end = start - 1;//from w  w w .ja v a 2  s. c om
    } else {
        // we need to do it even if extendedDimension is null in case of syntax error in an array initializer
        // need the exclusive range for retrieveEndOfPotentialExtendedDimensions
        int possibleEnd = retrieveEndOfPotentialExtendedDimensions(start + 1, fieldDeclaration.sourceEnd,
                fieldDeclaration.declarationSourceEnd);
        if (possibleEnd == Integer.MIN_VALUE) {
            end = fieldDeclaration.declarationSourceEnd;
            variableDeclarationFragment.setFlags(variableDeclarationFragment.getFlags() | ASTNode.MALFORMED);
        }
        if (possibleEnd < 0) {
            end = -possibleEnd;
            variableDeclarationFragment.setFlags(variableDeclarationFragment.getFlags() | ASTNode.MALFORMED);
        } else {
            end = possibleEnd;
        }
    }
    variableDeclarationFragment.setSourceRange(fieldDeclaration.sourceStart,
            end - fieldDeclaration.sourceStart + 1);
    if (this.resolveBindings) {
        recordNodes(name, fieldDeclaration);
        recordNodes(variableDeclarationFragment, fieldDeclaration);
        variableDeclarationFragment.resolveBinding();
    }
    return variableDeclarationFragment;
}

From source file:org.eclipse.jdt.core.dom.ASTConverter.java

License:Open Source License

protected VariableDeclarationFragment convertToVariableDeclarationFragment(
        org.eclipse.jdt.internal.compiler.ast.LocalDeclaration localDeclaration) {
    final VariableDeclarationFragment variableDeclarationFragment = new VariableDeclarationFragment(this.ast);
    final SimpleName name = new SimpleName(this.ast);
    name.internalSetIdentifier(new String(localDeclaration.name));
    name.setSourceRange(localDeclaration.sourceStart,
            localDeclaration.sourceEnd - localDeclaration.sourceStart + 1);
    variableDeclarationFragment.setName(name);
    int start = localDeclaration.sourceEnd;
    org.eclipse.jdt.internal.compiler.ast.Expression initialization = localDeclaration.initialization;
    int extraDimension = retrieveExtraDimension(localDeclaration.sourceEnd + 1,
            this.compilationUnitSourceLength);
    variableDeclarationFragment.setExtraDimensions(extraDimension);
    boolean hasInitialization = initialization != null;
    int end;//w ww. ja va  2 s . c o m
    if (hasInitialization) {
        final Expression expression = convert(initialization);
        variableDeclarationFragment.setInitializer(expression);
        start = expression.getStartPosition() + expression.getLength();
        end = start - 1;
    } else {
        // we need to do it even if extendedDimension is null in case of syntax error in an array initializer
        // start + 1 because we need the exclusive range for retrieveEndOfPotentialExtendedDimensions
        int possibleEnd = retrieveEndOfPotentialExtendedDimensions(start + 1, localDeclaration.sourceEnd,
                localDeclaration.declarationSourceEnd);
        if (possibleEnd == Integer.MIN_VALUE) {
            end = start;
            variableDeclarationFragment.setFlags(variableDeclarationFragment.getFlags() | ASTNode.MALFORMED);
        } else if (possibleEnd < 0) {
            end = -possibleEnd;
            variableDeclarationFragment.setFlags(variableDeclarationFragment.getFlags() | ASTNode.MALFORMED);
        } else {
            end = possibleEnd;
        }
    }
    variableDeclarationFragment.setSourceRange(localDeclaration.sourceStart,
            end - localDeclaration.sourceStart + 1);
    if (this.resolveBindings) {
        recordNodes(variableDeclarationFragment, localDeclaration);
        recordNodes(name, localDeclaration);
        variableDeclarationFragment.resolveBinding();
    }
    return variableDeclarationFragment;
}