Example usage for org.eclipse.jdt.core.dom VariableDeclarationExpression setSourceRange

List of usage examples for org.eclipse.jdt.core.dom VariableDeclarationExpression setSourceRange

Introduction

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

Prototype

public final void setSourceRange(int startPosition, int length) 

Source Link

Document

Sets the source range of the original source file where the source fragment corresponding to this node was found.

Usage

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

License:Open Source License

public ForStatement convert(org.eclipse.jdt.internal.compiler.ast.ForStatement statement) {
    ForStatement forStatement = new ForStatement(this.ast);
    forStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1);
    org.eclipse.jdt.internal.compiler.ast.Statement[] initializations = statement.initializations;
    if (initializations != null) {
        // we know that we have at least one initialization
        if (initializations[0] instanceof org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) {
            org.eclipse.jdt.internal.compiler.ast.LocalDeclaration initialization = (org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) initializations[0];
            VariableDeclarationExpression variableDeclarationExpression = convertToVariableDeclarationExpression(
                    initialization);/*  w  w  w .  j  a va 2 s . co m*/
            int initializationsLength = initializations.length;
            for (int i = 1; i < initializationsLength; i++) {
                initialization = (org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) initializations[i];
                variableDeclarationExpression.fragments()
                        .add(convertToVariableDeclarationFragment(initialization));
            }
            if (initializationsLength != 1) {
                int start = variableDeclarationExpression.getStartPosition();
                int end = ((org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) initializations[initializationsLength
                        - 1]).declarationSourceEnd;
                variableDeclarationExpression.setSourceRange(start, end - start + 1);
            }
            forStatement.initializers().add(variableDeclarationExpression);
        } else {
            int initializationsLength = initializations.length;
            for (int i = 0; i < initializationsLength; i++) {
                Expression initializer = convertToExpression(initializations[i]);
                if (initializer != null) {
                    forStatement.initializers().add(initializer);
                } else {
                    forStatement.setFlags(forStatement.getFlags() | ASTNode.MALFORMED);
                }
            }
        }
    }
    if (statement.condition != null) {
        forStatement.setExpression(convert(statement.condition));
    }
    org.eclipse.jdt.internal.compiler.ast.Statement[] increments = statement.increments;
    if (increments != null) {
        int incrementsLength = increments.length;
        for (int i = 0; i < incrementsLength; i++) {
            forStatement.updaters().add(convertToExpression(increments[i]));
        }
    }
    final Statement action = convert(statement.action);
    if (action == null)
        return null;
    forStatement.setBody(action);
    return forStatement;
}

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

License:Open Source License

public TryStatement convert(org.eclipse.jdt.internal.compiler.ast.TryStatement statement) {
    final TryStatement tryStatement = new TryStatement(this.ast);
    tryStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1);
    LocalDeclaration[] localDeclarations = statement.resources;
    int resourcesLength = localDeclarations.length;
    if (resourcesLength > 0) {
        switch (this.ast.apiLevel) {
        case AST.JLS2_INTERNAL:
        case AST.JLS3:
            // convert it to a simple try statement tagged as MALFORMED
            tryStatement.setFlags(tryStatement.getFlags() | ASTNode.MALFORMED);
            break;
        default:/*from   w  ww .  j  a va 2  s.  c  o m*/
            for (int i = 0; i < resourcesLength; i++) {
                LocalDeclaration localDeclaration = localDeclarations[i];
                VariableDeclarationExpression variableDeclarationExpression = convertToVariableDeclarationExpression(
                        localDeclaration);
                int start = variableDeclarationExpression.getStartPosition();
                int end = localDeclaration.declarationEnd;
                variableDeclarationExpression.setSourceRange(start, end - start + 1);
                tryStatement.resources().add(variableDeclarationExpression);
            }
        }
    }
    tryStatement.setBody(convert(statement.tryBlock));
    org.eclipse.jdt.internal.compiler.ast.Argument[] catchArguments = statement.catchArguments;
    if (catchArguments != null) {
        int catchArgumentsLength = catchArguments.length;
        org.eclipse.jdt.internal.compiler.ast.Block[] catchBlocks = statement.catchBlocks;
        int start = statement.tryBlock.sourceEnd;
        for (int i = 0; i < catchArgumentsLength; i++) {
            CatchClause catchClause = new CatchClause(this.ast);
            int catchClauseSourceStart = retrieveStartingCatchPosition(start, catchArguments[i].sourceStart);
            catchClause.setSourceRange(catchClauseSourceStart,
                    catchBlocks[i].sourceEnd - catchClauseSourceStart + 1);
            catchClause.setBody(convert(catchBlocks[i]));
            catchClause.setException(convert(catchArguments[i]));
            tryStatement.catchClauses().add(catchClause);
            start = catchBlocks[i].sourceEnd;
        }
    }
    if (statement.finallyBlock != null) {
        tryStatement.setFinally(convert(statement.finallyBlock));
    }
    return tryStatement;
}

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

License:Open Source License

protected VariableDeclarationExpression convertToVariableDeclarationExpression(
        org.eclipse.jdt.internal.compiler.ast.LocalDeclaration localDeclaration) {
    final VariableDeclarationFragment variableDeclarationFragment = convertToVariableDeclarationFragment(
            localDeclaration);//from   w  ww  . j a  v a 2  s  .c  o  m
    final VariableDeclarationExpression variableDeclarationExpression = new VariableDeclarationExpression(
            this.ast);
    variableDeclarationExpression.fragments().add(variableDeclarationFragment);
    if (this.resolveBindings) {
        recordNodes(variableDeclarationFragment, localDeclaration);
    }
    variableDeclarationExpression.setSourceRange(localDeclaration.declarationSourceStart,
            localDeclaration.declarationSourceEnd - localDeclaration.declarationSourceStart + 1);
    Type type = convertType(localDeclaration.type);
    setTypeForVariableDeclarationExpression(variableDeclarationExpression, type,
            variableDeclarationFragment.getExtraDimensions());
    if (localDeclaration.modifiersSourceStart != -1) {
        setModifiers(variableDeclarationExpression, localDeclaration);
    }
    return variableDeclarationExpression;
}