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

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

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom Initializer 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

protected void checkAndAddMultipleFieldDeclaration(
        org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] fields, int index, List bodyDeclarations) {
    if (fields[index] instanceof org.eclipse.jdt.internal.compiler.ast.Initializer) {
        org.eclipse.jdt.internal.compiler.ast.Initializer oldInitializer = (org.eclipse.jdt.internal.compiler.ast.Initializer) fields[index];
        Initializer initializer = new Initializer(this.ast);
        initializer.setBody(convert(oldInitializer.block));
        setModifiers(initializer, oldInitializer);
        initializer.setSourceRange(oldInitializer.declarationSourceStart,
                oldInitializer.sourceEnd - oldInitializer.declarationSourceStart + 1);
        // The javadoc comment is now got from list store in compilation unit declaration
        convert(oldInitializer.javadoc, initializer);
        bodyDeclarations.add(initializer);
        return;/* ww w  .  j  a v a 2 s . c o  m*/
    }
    if (index > 0 && fields[index - 1].declarationSourceStart == fields[index].declarationSourceStart) {
        // we have a multiple field declaration
        // We retrieve the existing fieldDeclaration to add the new VariableDeclarationFragment
        FieldDeclaration fieldDeclaration = (FieldDeclaration) bodyDeclarations
                .get(bodyDeclarations.size() - 1);
        fieldDeclaration.fragments().add(convertToVariableDeclarationFragment(fields[index]));
    } else {
        // we can create a new FieldDeclaration
        bodyDeclarations.add(convertToFieldDeclaration(fields[index]));
    }
}

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

License:Open Source License

public TypeDeclaration convert(org.eclipse.jdt.internal.compiler.ast.ASTNode[] nodes) {
    final TypeDeclaration typeDecl = new TypeDeclaration(this.ast);
    typeDecl.setInterface(false);/*from  www  .  j  av a  2 s . com*/
    int nodesLength = nodes.length;
    for (int i = 0; i < nodesLength; i++) {
        org.eclipse.jdt.internal.compiler.ast.ASTNode node = nodes[i];
        if (node instanceof org.eclipse.jdt.internal.compiler.ast.Initializer) {
            org.eclipse.jdt.internal.compiler.ast.Initializer oldInitializer = (org.eclipse.jdt.internal.compiler.ast.Initializer) node;
            Initializer initializer = new Initializer(this.ast);
            initializer.setBody(convert(oldInitializer.block));
            setModifiers(initializer, oldInitializer);
            initializer.setSourceRange(oldInitializer.declarationSourceStart,
                    oldInitializer.sourceEnd - oldInitializer.declarationSourceStart + 1);
            //            setJavaDocComment(initializer);
            //            initializer.setJavadoc(convert(oldInitializer.javadoc));
            convert(oldInitializer.javadoc, initializer);
            typeDecl.bodyDeclarations().add(initializer);
        } else if (node instanceof org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) {
            org.eclipse.jdt.internal.compiler.ast.FieldDeclaration fieldDeclaration = (org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) node;
            if (i > 0 && (nodes[i - 1] instanceof org.eclipse.jdt.internal.compiler.ast.FieldDeclaration)
                    && ((org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) nodes[i
                            - 1]).declarationSourceStart == fieldDeclaration.declarationSourceStart) {
                // we have a multiple field declaration
                // We retrieve the existing fieldDeclaration to add the new VariableDeclarationFragment
                FieldDeclaration currentFieldDeclaration = (FieldDeclaration) typeDecl.bodyDeclarations()
                        .get(typeDecl.bodyDeclarations().size() - 1);
                currentFieldDeclaration.fragments().add(convertToVariableDeclarationFragment(fieldDeclaration));
            } else {
                // we can create a new FieldDeclaration
                typeDecl.bodyDeclarations().add(convertToFieldDeclaration(fieldDeclaration));
            }
        } else if (node instanceof org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration) {
            AbstractMethodDeclaration nextMethodDeclaration = (AbstractMethodDeclaration) node;
            if (!nextMethodDeclaration.isDefaultConstructor() && !nextMethodDeclaration.isClinit()) {
                typeDecl.bodyDeclarations().add(convert(false, nextMethodDeclaration));
            }
        } else if (node instanceof org.eclipse.jdt.internal.compiler.ast.TypeDeclaration) {
            org.eclipse.jdt.internal.compiler.ast.TypeDeclaration nextMemberDeclaration = (org.eclipse.jdt.internal.compiler.ast.TypeDeclaration) node;
            ASTNode nextMemberDeclarationNode = convert(nextMemberDeclaration);
            if (nextMemberDeclarationNode == null) {
                typeDecl.setFlags(typeDecl.getFlags() | ASTNode.MALFORMED);
            } else {
                typeDecl.bodyDeclarations().add(nextMemberDeclarationNode);
            }
        }
    }
    return typeDecl;
}