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

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

Introduction

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

Prototype

public final int getStartPosition() 

Source Link

Document

Returns the character index into the original source file indicating where the source fragment corresponding to this node begins.

Usage

From source file:br.uff.ic.gems.resources.ast.Visitor.java

@Override
public boolean visit(VariableDeclarationExpression node) {

    List<VariableDeclarationFragment> fragments = node.fragments();
    for (VariableDeclarationFragment fragment : fragments) {
        int beginLine = cu.getLineNumber(fragment.getStartPosition());
        int endLine = cu.getLineNumber(fragment.getStartPosition() + fragment.getLength());
        int beginColumn = cu.getColumnNumber(node.getStartPosition());
        int endColumn = cu.getColumnNumber(node.getStartPosition() + node.getLength());

        SimpleName name = fragment.getName();

        if (name != null) {
            endLine = cu.getLineNumber(name.getStartPosition() + name.getLength());
            endColumn = cu.getColumnNumber(name.getStartPosition() + name.getLength());
        }//from   ww  w .  j  ava  2  s . c o m

        languageConstructs.add(new LanguageConstruct(node.getClass().getSimpleName(), beginLine, endLine,
                beginColumn, endColumn, fragment.getName().getIdentifier()));
    }

    return true;
}

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);//from   w  ww.  ja v  a2 s.  c  o  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  ava  2 s  . co 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;
}