Example usage for org.eclipse.jdt.core.dom Statement setStructuralProperty

List of usage examples for org.eclipse.jdt.core.dom Statement setStructuralProperty

Introduction

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

Prototype

public final void setStructuralProperty(StructuralPropertyDescriptor property, Object value) 

Source Link

Document

Sets the value of the given structural property for this node.

Usage

From source file:de.ovgu.cide.export.physical.ahead.JakHookMethodHelper.java

License:Open Source License

private void createRefinement() {
    refinement = createHookMethodSkeleton();
    List<Statement> statementList = refinement.getBody().statements();

    for (Statement stmt : statements) {
        Statement copyStmt = copyStatement(stmt);
        if (hasSubtreeRuleException && subtreeRuleExceptionParent == stmt) {
            assert returnValues.size() <= 1;
            Formal formal = null;/*from   w w w.  java 2s  .c o  m*/
            if (returnValues.size() == 1)
                formal = returnValues.get(0);
            Statement replacement = JakFeatureRefactorer.createSuperCall(refinement, ast, false, formal);
            /*
             * we place the supercall at the old position where currently
             * the placeholder is located
             */
            if (subtreeRuleExceptionIsBlock) {
                Block b = ast.newBlock();
                b.statements().add(replacement);
                replacement = b;
            }

            StructuralPropertyDescriptor prop = exceptionPlaceholder.getLocationInParent();
            if (prop.isSimpleProperty() || prop.isChildProperty()) {
                copyStmt.setStructuralProperty(prop, replacement);
            } else if (prop.isChildListProperty()) {
                assert false;
            }

        }

        statementList.add(copyStmt);
    }
    if (subtreeRuleException == null)
        statementList.add(JakFeatureRefactorer.createSuperCall(refinement, ast, true, null));
    else
        appendReturnStatement(refinement.getBody());

}