Example usage for org.eclipse.jdt.core.dom SingleVariableDeclaration MODIFIERS2_PROPERTY

List of usage examples for org.eclipse.jdt.core.dom SingleVariableDeclaration MODIFIERS2_PROPERTY

Introduction

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

Prototype

ChildListPropertyDescriptor MODIFIERS2_PROPERTY

To view the source code for org.eclipse.jdt.core.dom SingleVariableDeclaration MODIFIERS2_PROPERTY.

Click Source Link

Document

The "modifiers" structural property of this node type (element type: IExtendedModifier ) (added in JLS3 API).

Usage

From source file:com.halware.nakedide.eclipse.ext.annot.ast.AbstractAnnotationEvaluatorOrModifier.java

License:Open Source License

private void addNormalAnnotation(ICompilationUnit compilationUnit, SingleVariableDeclaration declaration,
        Map<String, Object> memberValues) throws MalformedTreeException, BadLocationException, CoreException {

    if (annotationExists(declaration)) {
        return;// w ww.j a  va2 s  . c o  m
    }

    AST ast = declaration.getAST();

    NormalAnnotation normalAnnotation = AstUtils.createNormalAnnotation(ast, getAnnotationFullyQualifiedName(),
            memberValues);
    normalAnnotation.setSourceRange(AstUtils.calculateOffset(declaration).offset, normalAnnotation.getLength());

    ImportDeclaration importDeclaration = AstUtils.createImportStatement(ast,
            getAnnotationFullyQualifiedName());

    String source = compilationUnit.getBuffer().getContents();
    Document document = new Document(source);

    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setSource(compilationUnit);

    ASTRewrite rewrite = ASTRewrite.create(declaration.getAST());

    ListRewrite listRewrite = rewrite.getListRewrite(declaration,
            SingleVariableDeclaration.MODIFIERS2_PROPERTY);
    listRewrite.insertFirst(normalAnnotation, null);

    maintainValuesProperty(normalAnnotation, memberValues, ast, rewrite);

    TextEdit importEdits = null;
    ImportRewrite importRewrite = ImportRewrite.create(compilationUnit, true);
    importRewrite.addImport(importDeclaration.getName().getFullyQualifiedName());
    importEdits = importRewrite.rewriteImports(null);

    Map options = compilationUnit.getJavaProject().getOptions(true);
    TextEdit edits = rewrite.rewriteAST(document, options);

    // computation of the new source code
    edits.apply(document);
    if (importEdits != null) {
        importEdits.apply(document);
    }
    String newSource = document.get();

    // update of the compilation unit
    compilationUnit.getBuffer().setContents(newSource);
}

From source file:com.halware.nakedide.eclipse.ext.annot.utils.AstUtils.java

License:Open Source License

public static void rewriteAddFirst(ICompilationUnit compilationUnit, SingleVariableDeclaration declaration,
        Annotation annotation, ImportDeclaration importDeclaration)
        throws MalformedTreeException, BadLocationException, CoreException {

    String source = compilationUnit.getBuffer().getContents();
    Document document = new Document(source);

    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setSource(compilationUnit);//  w w  w. j ava  2s.  c  o m

    ASTRewrite rewrite = ASTRewrite.create(declaration.getAST());

    ListRewrite listRewrite = rewrite.getListRewrite(declaration,
            SingleVariableDeclaration.MODIFIERS2_PROPERTY);
    listRewrite.insertFirst(annotation, null);

    TextEdit importEdits = null;
    if (importDeclaration != null) {
        ImportRewrite importRewrite = ImportRewrite.create(compilationUnit, true);
        importRewrite.addImport(importDeclaration.getName().getFullyQualifiedName());
        importEdits = importRewrite.rewriteImports(null);
    }

    Map options = compilationUnit.getJavaProject().getOptions(true);
    TextEdit edits = rewrite.rewriteAST(document, options);

    // computation of the new source code
    edits.apply(document);
    if (importEdits != null) {
        importEdits.apply(document);
    }
    String newSource = document.get();

    // update of the compilation unit
    compilationUnit.getBuffer().setContents(newSource);
}

From source file:edu.umd.cs.findbugs.plugin.eclipse.quickfix.CreateDoPrivilegedBlockResolution.java

License:Open Source License

protected void updateMethodParams(ASTRewrite rewrite, Set<String> variables, List<?> params) {
    Assert.isNotNull(rewrite);/*from  w ww. j av  a2  s.  c  o  m*/
    Assert.isNotNull(variables);
    Assert.isNotNull(params);

    for (Object paramObj : params) {
        SingleVariableDeclaration param = (SingleVariableDeclaration) paramObj;
        if (variables.contains(param.getName().getFullyQualifiedName())) {
            ListRewrite listRewrite = rewrite.getListRewrite(param,
                    SingleVariableDeclaration.MODIFIERS2_PROPERTY);
            listRewrite.insertLast(rewrite.getAST().newModifier(ModifierKeyword.FINAL_KEYWORD), null);
        }
    }
}

From source file:edu.umd.cs.findbugs.quickfix.resolution.CreateDoPrivilegedBlockResolution.java

License:Open Source License

protected void updateMethodParams(ASTRewrite rewrite, Set<String> variables, List<?> params) {
    assert rewrite != null;
    assert variables != null;
    assert params != null;

    for (Object paramObj : params) {
        SingleVariableDeclaration param = (SingleVariableDeclaration) paramObj;
        if (variables.contains(param.getName().getFullyQualifiedName())) {
            ListRewrite listRewrite = rewrite.getListRewrite(param,
                    SingleVariableDeclaration.MODIFIERS2_PROPERTY);
            listRewrite.insertLast(rewrite.getAST().newModifier(ModifierKeyword.FINAL_KEYWORD), null);
        }/*from   ww  w.  j  av a2  s .  com*/
    }
}

From source file:org.moe.natjgen.MethodEditor.java

License:Apache License

@SuppressWarnings("unchecked")
public void setArgument(int idx, String arg_name, Type type, TypeResolver resolver) throws GeneratorException {
    editLock();/*from  ww w .j av  a2  s  .  c o  m*/

    ListRewrite mlrw = getRewrite().getListRewrite(methodDecl, MethodDeclaration.PARAMETERS_PROPERTY);
    List<SingleVariableDeclaration> list = (List<SingleVariableDeclaration>) mlrw.getRewrittenList();
    SingleVariableDeclaration svd = list.get(idx);

    SimpleName property = (SimpleName) getRewrite().get(svd, SingleVariableDeclaration.NAME_PROPERTY);
    if (property == null || !property.getFullyQualifiedName().equals(arg_name)) {
        getRewrite().set(svd, SingleVariableDeclaration.NAME_PROPERTY, getAST().newName(arg_name),
                getEditGroup());
    }

    ModifierEditor argmod = new ModifierEditor(getManager(), svd, SingleVariableDeclaration.MODIFIERS2_PROPERTY,
            true);
    resolver.resolve(getManager(), svd, SingleVariableDeclaration.TYPE_PROPERTY, argmod, type, true);
    argmod.close();

    // Add uncertain descriptor
    UncertainDescriptor udesc = argmod.getUncertainDescriptor();
    if (udesc != null) {
        uncertains.add(new UncertainElem(Integer.toString(idx), udesc));
    }
}

From source file:org.springframework.ide.eclipse.quickfix.jdt.proposals.AddPathVariableCompletionProposal.java

License:Open Source License

@Override
protected ASTRewrite getRewrite() throws CoreException {
    CompilationUnit astRoot = ASTResolving.findParentCompilationUnit(methodDecl);
    final ASTRewrite astRewrite = ASTRewrite.create(astRoot.getAST());

    AST ast = astRewrite.getAST();//  w w w. java  2s  . co m

    String importName = PathVariable.class.getCanonicalName();
    if (!ProposalCalculatorUtil.containsImport(getCompilationUnit(), importName)) {
        ImportRewrite importRewrite = createImportRewrite(astRoot);
        importRewrite.addImport(importName);
    }

    SingleMemberAnnotation annotation = ast.newSingleMemberAnnotation();
    annotation.setTypeName(ast.newSimpleName("PathVariable"));
    StringLiteral pathVariableName = ast.newStringLiteral();
    pathVariableName.setLiteralValue(variable.getVariableName());
    annotation.setValue(pathVariableName);

    astRewrite.getListRewrite(param, SingleVariableDeclaration.MODIFIERS2_PROPERTY).insertFirst(annotation,
            null);

    final ITrackedNodePosition literalPosition = astRewrite.track(variable.getNode());
    addLinkedPosition(new ITrackedNodePosition() {

        public int getStartPosition() {
            return literalPosition.getStartPosition() + variable.getOffsetFromNode();
        }

        public int getLength() {
            return variable.getVariableName().length();
        }
    }, true, "PathVariable");

    addLinkedPosition(new StringLiteralTrackedPosition(astRewrite.track(pathVariableName)), false,
            "PathVariable");

    return astRewrite;
}

From source file:org.springframework.ide.eclipse.quickfix.jdt.proposals.AddPathVariableParameterCompletionProposal.java

License:Open Source License

@Override
protected ASTRewrite getRewrite() throws CoreException {
    CompilationUnit astRoot = ASTResolving.findParentCompilationUnit(methodDecl);
    ASTRewrite astRewrite = ASTRewrite.create(astRoot.getAST());

    AST ast = astRewrite.getAST();//w  ww .j  a v  a 2 s  .c o m

    String importName = PathVariable.class.getCanonicalName();
    if (!ProposalCalculatorUtil.containsImport(getCompilationUnit(), importName)) {
        ImportRewrite importRewrite = createImportRewrite(astRoot);
        importRewrite.addImport(importName);
    }

    addLinkedPosition(new ITrackedNodePosition() {

        public int getStartPosition() {
            return variable.getOffset();
        }

        public int getLength() {
            return variable.getVariableName().length();
        }
    }, true, "variableName");

    SingleVariableDeclaration paramDecl = ast.newSingleVariableDeclaration();

    SimpleType variableType = ast.newSimpleType(ast.newSimpleName("String"));
    paramDecl.setType(variableType);
    addLinkedPosition(astRewrite.track(variableType), false, "variableType");

    SimpleName variableName = ast.newSimpleName(variable.getVariableName());
    paramDecl.setName(variableName);
    addLinkedPosition(astRewrite.track(variableName), false, "variableName");

    SingleMemberAnnotation annotation = ast.newSingleMemberAnnotation();
    annotation.setTypeName(ast.newSimpleName("PathVariable"));

    StringLiteral pathVariableName = ast.newStringLiteral();
    pathVariableName.setLiteralValue(variable.getVariableName());
    annotation.setValue(pathVariableName);
    addLinkedPosition(new StringLiteralTrackedPosition(astRewrite.track(pathVariableName)), false,
            "variableName");

    ListRewrite listRewrite = astRewrite.getListRewrite(paramDecl,
            SingleVariableDeclaration.MODIFIERS2_PROPERTY);
    listRewrite.insertFirst(annotation, null);

    listRewrite = astRewrite.getListRewrite(methodDecl, MethodDeclaration.PARAMETERS_PROPERTY);
    listRewrite.insertLast(paramDecl, null);

    return astRewrite;
}

From source file:org.springframework.ide.eclipse.quickfix.jdt.proposals.AddQualiferToMethodParamCompletionProposal.java

License:Open Source License

private SingleMemberAnnotation createAnnotation(SingleVariableDeclaration decl, String qualifiedName,
        String simpleName, CompilationUnit astRoot, AST ast, ASTRewrite astRewrite, ImportRewrite importRewrite,
        boolean multiple, int pos) {
    if (!ProposalCalculatorUtil.containsImport(getCompilationUnit(), qualifiedName)) {
        importRewrite.addImport(qualifiedName);
    }//from ww  w  .j a v a2s  .  com

    SingleMemberAnnotation annotation = ast.newSingleMemberAnnotation();
    annotation.setTypeName(ast.newSimpleName(simpleName));
    StringLiteral literal = ast.newStringLiteral();
    // literal.setLiteralValue(qualifier);
    annotation.setValue(literal);
    setTrackPosition(new StringLiteralTrackedPosition(astRewrite.track(literal)));

    ChildListPropertyDescriptor property;

    property = SingleVariableDeclaration.MODIFIERS2_PROPERTY;

    // if (precedingNode != null) {
    // astRewrite.getListRewrite(decl, property).insertAfter(annotation,
    // precedingNode, null);
    // }
    // else {
    astRewrite.getListRewrite(decl, property).insertLast(annotation, null);
    // }

    if (multiple) {
        addLinkedPosition(new StringLiteralTrackedPosition(astRewrite.track(literal)), pos == 0,
                "Qualifier " + pos);
    }

    return annotation;
}

From source file:org.springframework.ide.eclipse.quickfix.jdt.proposals.AddRequestMappingParamCompletionProposal.java

License:Open Source License

@Override
protected ASTRewrite getRewrite() throws CoreException {
    CompilationUnit astRoot = ASTResolving.findParentCompilationUnit(param);
    ASTRewrite astRewrite = ASTRewrite.create(astRoot.getAST());

    AST ast = astRewrite.getAST();/*from   w  w w .ja  v a 2 s. co  m*/

    String importName = annotationClass.getCanonicalName();
    if (!ProposalCalculatorUtil.containsImport(getCompilationUnit(), importName)) {
        ImportRewrite importRewrite = createImportRewrite(astRoot);
        importRewrite.addImport(importName);
    }

    Annotation annotation;
    if (annotationClass.equals(PathVariable.class)) {
        SingleMemberAnnotation sAnnotation = ast.newSingleMemberAnnotation();
        StringLiteral paramName = ast.newStringLiteral();
        paramName.setLiteralValue(param.getName().getFullyQualifiedName());
        sAnnotation.setValue(paramName);

        addLinkedPosition(new StringLiteralTrackedPosition(astRewrite.track(paramName)), true, "paramValue");
        annotation = sAnnotation;
    } else {
        annotation = ast.newMarkerAnnotation();
    }

    annotation.setTypeName(ast.newSimpleName(annotationClass.getSimpleName()));

    astRewrite.getListRewrite(param, SingleVariableDeclaration.MODIFIERS2_PROPERTY).insertFirst(annotation,
            null);

    return astRewrite;
}

From source file:org.springframework.ide.eclipse.quickfix.jdt.proposals.RequestMappingVariableCompletionProposal.java

License:Open Source License

@Override
protected ASTRewrite getRewrite() throws CoreException {
    AST ast = decl.getAST();/*from  ww  w .j a v a 2 s .c  o  m*/
    ASTRewrite rewrite = ASTRewrite.create(ast);

    if (newTemplateString == null || oldTemplate == null) {
        return rewrite;
    }

    boolean isLinked = false;
    if (param != null && !ProposalCalculatorUtil.hasAnnotation("PathVariable", param)) {
        String requestMappingTypeName = PathVariable.class.getCanonicalName();
        if (!ProposalCalculatorUtil.containsImport(getCompilationUnit(), requestMappingTypeName)) {
            CompilationUnit astRoot = ASTResolving.findParentCompilationUnit(decl);
            ImportRewrite importRewrite = createImportRewrite(astRoot);
            importRewrite.addImport(requestMappingTypeName);
        }

        SingleMemberAnnotation annotation = ast.newSingleMemberAnnotation();
        annotation.setTypeName(ast.newSimpleName("PathVariable"));
        StringLiteral pathVariableName = ast.newStringLiteral();
        pathVariableName.setLiteralValue(variableName);
        ITrackedNodePosition trackPathVariable = rewrite.track(pathVariableName);
        addLinkedPosition(new StringLiteralTrackedPosition(trackPathVariable), true, "PathVariable");
        annotation.setValue(pathVariableName);
        isLinked = true;

        ChildListPropertyDescriptor property;

        property = SingleVariableDeclaration.MODIFIERS2_PROPERTY;

        rewrite.getListRewrite(param, property).insertLast(annotation, null);
    }

    StringLiteral newTemplate = ast.newStringLiteral();
    newTemplate.setLiteralValue(newTemplateString);
    ITrackedNodePosition trackTemplateVariable = rewrite.track(newTemplate);
    rewrite.replace(oldTemplate, newTemplate, null);

    if (isLinked) {
        addLinkedPosition(new StringLiteralTrackedPosition(trackTemplateVariable, cursorOffset,
                variableName.length(), false), false, "PathVariable");
    } else {
        setTrackPosition(new StringLiteralTrackedPosition(trackTemplateVariable,
                cursorOffset + variableName.length(), 0, true));
    }

    return rewrite;
}