com.sun.source.tree.ClassTree#getModifiers ( )源码实例Demo

下面列出了com.sun.source.tree.ClassTree#getModifiers ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: TencentKona-8   文件: JavacParserTest.java
@Test
void testPositionForEnumModifiers() throws IOException {
    final String theString = "public";
    String code = "package test; " + theString + " enum Test {A;}";

    JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
            null, Arrays.asList(new MyFileObject(code)));
    CompilationUnitTree cut = ct.parse().iterator().next();
    SourcePositions pos = Trees.instance(ct).getSourcePositions();

    ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
    ModifiersTree mt = clazz.getModifiers();
    int spos = code.indexOf(theString);
    int epos = spos + theString.length();
    assertEquals("testPositionForEnumModifiers",
            spos, pos.getStartPosition(cut, mt));
    assertEquals("testPositionForEnumModifiers",
            epos, pos.getEndPosition(cut, mt));
}
 
源代码2 项目: openjdk-jdk8u   文件: JavacParserTest.java
@Test
void testPositionForEnumModifiers() throws IOException {
    final String theString = "public";
    String code = "package test; " + theString + " enum Test {A;}";

    JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
            null, Arrays.asList(new MyFileObject(code)));
    CompilationUnitTree cut = ct.parse().iterator().next();
    SourcePositions pos = Trees.instance(ct).getSourcePositions();

    ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
    ModifiersTree mt = clazz.getModifiers();
    int spos = code.indexOf(theString);
    int epos = spos + theString.length();
    assertEquals("testPositionForEnumModifiers",
            spos, pos.getStartPosition(cut, mt));
    assertEquals("testPositionForEnumModifiers",
            epos, pos.getEndPosition(cut, mt));
}
 
源代码3 项目: openjdk-8-source   文件: JavacParserTest.java
@Test
void testPositionForEnumModifiers() throws IOException {
    final String theString = "public";
    String code = "package test; " + theString + " enum Test {A;}";

    JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
            null, Arrays.asList(new MyFileObject(code)));
    CompilationUnitTree cut = ct.parse().iterator().next();
    SourcePositions pos = Trees.instance(ct).getSourcePositions();

    ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
    ModifiersTree mt = clazz.getModifiers();
    int spos = code.indexOf(theString);
    int epos = spos + theString.length();
    assertEquals("testPositionForEnumModifiers",
            spos, pos.getStartPosition(cut, mt));
    assertEquals("testPositionForEnumModifiers",
            epos, pos.getEndPosition(cut, mt));
}
 
源代码4 项目: netbeans   文件: ClassStructure.java
@Override
protected void performRewrite(TransformationContext ctx) {
    WorkingCopy wc = ctx.getWorkingCopy();
    GeneratorUtilities gu = GeneratorUtilities.get(wc);
    TreePath path = ctx.getPath();
    final ClassTree cls = (ClassTree) path.getLeaf();
    gu.importComments(cls, wc.getCompilationUnit());
    final TreeMaker treeMaker = wc.getTreeMaker();
    ModifiersTree mods = cls.getModifiers();
    if (mods.getFlags().contains(Modifier.ABSTRACT)) {
        Set<Modifier> modifiers = EnumSet.copyOf(mods.getFlags());
        modifiers.remove(Modifier.ABSTRACT);
        ModifiersTree nmods = treeMaker.Modifiers(modifiers, mods.getAnnotations());
        gu.copyComments(mods, nmods, true);
        gu.copyComments(mods, nmods, false);
        mods = nmods;
    }
    Tree nue = treeMaker.Interface(mods, cls.getSimpleName(), cls.getTypeParameters(), cls.getImplementsClause(), cls.getMembers());
    gu.copyComments(cls, nue, true);
    gu.copyComments(cls, nue, false);
    wc.rewrite(path.getLeaf(), nue);
}
 
源代码5 项目: netbeans   文件: ImplementAllAbstractMethods.java
@Override
protected void performRewrite(TransformationContext ctx) throws Exception {
    WorkingCopy wc = ctx.getWorkingCopy();
    Tree.Kind k = ctx.getPath().getLeaf().getKind();
    if (!TreeUtilities.CLASS_TREE_KINDS.contains(k)) {
        // TODO: report
        return;
    }
    ClassTree ct = (ClassTree)ctx.getPath().getLeaf();
    ModifiersTree mt = ct.getModifiers();
    Set<Modifier> mods = new HashSet<>(mt.getFlags());
    mods.remove(Modifier.FINAL);
    mods.add(Modifier.ABSTRACT);
    ModifiersTree newMt = wc.getTreeMaker().Modifiers(mods, mt.getAnnotations());
    wc.rewrite(mt, newMt);
}
 
源代码6 项目: hottub   文件: JavacParserTest.java
@Test
void testPositionForEnumModifiers() throws IOException {
    final String theString = "public";
    String code = "package test; " + theString + " enum Test {A;}";

    JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, null,
            null, Arrays.asList(new MyFileObject(code)));
    CompilationUnitTree cut = ct.parse().iterator().next();
    SourcePositions pos = Trees.instance(ct).getSourcePositions();

    ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
    ModifiersTree mt = clazz.getModifiers();
    int spos = code.indexOf(theString);
    int epos = spos + theString.length();
    assertEquals("testPositionForEnumModifiers",
            spos, pos.getStartPosition(cut, mt));
    assertEquals("testPositionForEnumModifiers",
            epos, pos.getEndPosition(cut, mt));
}
 
源代码7 项目: nopen   文件: NopenChecker.java
@Override public Description matchClass(ClassTree tree, VisitorState state) {
  if (tree.getKind() != CLASS) {
    return NO_MATCH;
  }

  ModifiersTree modifiers = tree.getModifiers();
  Set<Modifier> modifierFlags = modifiers.getFlags();
  if (modifierFlags.contains(FINAL) || modifierFlags.contains(ABSTRACT)) {
    return NO_MATCH;
  }

  switch (ASTHelpers.getSymbol(tree).getNestingKind()) {
    case LOCAL:
    case ANONYMOUS:
      return NO_MATCH;

    case MEMBER:
      if (modifierFlags.contains(PRIVATE)) {
        return NO_MATCH;
      }
      break;

    case TOP_LEVEL:
      break;
  }

  for (AnnotationTree annotation : modifiers.getAnnotations()) {
    AnnotationMirror annotationMirror = ASTHelpers.getAnnotationMirror(annotation);
    if (annotationMirror.getAnnotationType().toString().equals(OPEN_FQCN)) {
      return NO_MATCH;
    }
  }
  return describeMatch(tree);
}
 
源代码8 项目: netbeans   文件: EntityResourcesGenerator.java
protected ModifiersTree addResourceAnnotation(
        final String entityFQN, ClassTree classTree,
        GenerationUtils genUtils, TreeMaker maker )
{
    // Add @Path annotation to REST resource class
    ExpressionTree resourcePath = maker.Literal(entityFQN.toLowerCase());
    ModifiersTree modifiersTree = classTree.getModifiers();
    modifiersTree =
            maker.addModifiersAnnotation(modifiersTree, 
                    genUtils.createAnnotation(RestConstants.PATH, 
                            Collections.<ExpressionTree>singletonList(
                                    resourcePath)));
    return modifiersTree;
}
 
源代码9 项目: netbeans   文件: ModifiersTest.java
/**
 * Update top-level class modifiers.
 */
public void testAddClassAbstract() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package hierbas.del.litoral;\n\n" +
            "import java.io.*;\n\n" +
            "public class Test {\n" +
            "    public abstract void taragui();\n" +
            "}\n"
            );
    String golden =
            "package hierbas.del.litoral;\n\n" +
            "import java.io.*;\n\n" +
            "public abstract class Test {\n" +
            "    public abstract void taragui();\n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            
            // finally, find the correct body and rewrite it.
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            Set<Modifier> s = new HashSet<Modifier>(mods.getFlags());
            s.add(Modifier.ABSTRACT);
            workingCopy.rewrite(mods, make.Modifiers(s));
        }
        
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码10 项目: netbeans   文件: JavaSourceHelper.java
public static void addClassAnnotation(WorkingCopy copy, String[] annotations, Object[] annotationAttrs) {
    TreeMaker maker = copy.getTreeMaker();
    ClassTree tree = getTopLevelClassTree(copy);
    if (tree == null) {
        return;
    }

    ModifiersTree modifiers = tree.getModifiers();

    for (int i = 0; i < annotations.length; i++) {
        List<ExpressionTree> attrTrees = null;
        Object attr = annotationAttrs[i];

        if (attr != null) {
            attrTrees = new ArrayList<ExpressionTree>();

            if (attr instanceof ExpressionTree) {
                attrTrees.add((ExpressionTree) attr);
            } else {
                attrTrees.add(maker.Literal(attr));
            }
        } else {
            attrTrees = Collections.<ExpressionTree>emptyList();
        }

        AnnotationTree newAnnotation = maker.Annotation(maker.Identifier(annotations[i]), attrTrees);

        if (modifiers != null) {
            modifiers = maker.addModifiersAnnotation(modifiers, newAnnotation);
        }
    }

    copy.rewrite(tree.getModifiers(), modifiers);
}
 
源代码11 项目: netbeans   文件: JavaSourceHelper.java
public static void addClassAnnotation(WorkingCopy copy, String[] annotations, Object[] annotationAttrs) {
    TreeMaker maker = copy.getTreeMaker();
    ClassTree tree = getTopLevelClassTree(copy);

    ModifiersTree modifiers = tree.getModifiers();

    for (int i = 0; i < annotations.length; i++) {
        List<ExpressionTree> attrTrees = null;
        Object attr = annotationAttrs[i];

        if (attr != null) {
            attrTrees = new ArrayList<ExpressionTree>();

            if (attr instanceof ExpressionTree) {
                attrTrees.add((ExpressionTree) attr);
            } else {
                attrTrees.add(maker.Literal(attr));
            }
        } else {
            attrTrees = Collections.<ExpressionTree>emptyList();
        }

        AnnotationTree newAnnotation = maker.Annotation(maker.Identifier(annotations[i]), attrTrees);

        if (modifiers != null) {
            modifiers = maker.addModifiersAnnotation(modifiers, newAnnotation);
        }
    }

    copy.rewrite(tree.getModifiers(), modifiers);
}
 
源代码12 项目: netbeans   文件: ModifiersTest.java
public void testChangeInterfaceModifier() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package flaska;\n" +
            "\n" +
            "public interface Test {\n" +
            "}\n"
            );
    String golden =
            "package flaska;\n" +
            "\n" +
            "interface Test {\n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            Set<Modifier> flags = new HashSet<Modifier>(mods.getFlags());
            flags.remove(Modifier.PUBLIC);
            ModifiersTree modified = make.Modifiers(flags);
            
            ClassTree copy = make.Interface(
                    modified,
                    clazz.getSimpleName(),
                    Collections.<TypeParameterTree>emptyList(),
                    Collections.<Tree>emptyList(),
                    clazz.getMembers()
            );
            workingCopy.rewrite(clazz, copy);
        }
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码13 项目: netbeans   文件: AnnotationProcessors.java
public TreePath findSupportedAnnotation() {
    ClassTree ct = (ClassTree) processorPath.getLeaf();
    TreePath modPath = new TreePath(processorPath, ct.getModifiers());
    for (AnnotationTree at : ct.getModifiers().getAnnotations()) {
        TreePath tp = new TreePath(modPath, at);
        TypeMirror am = info.getTrees().getTypeMirror(tp);
        if (info.getTypes().isSameType(am, supportedSourceType)) {
            return tp;
        }
    }
    return null;
}
 
源代码14 项目: netbeans   文件: JUnit4TestGenerator.java
/**
 */
@Override
protected ClassTree finishSuiteClass(ClassTree tstClass,
                                     TreePath tstClassTreePath,
                                     List<Tree> tstMembers,
                                     List<String> suiteMembers,
                                     boolean membersChanged,
                                     ClassMap classMap,
                                     WorkingCopy workingCopy) {

    ModifiersTree currModifiers = tstClass.getModifiers();
    ModifiersTree modifiers = fixSuiteClassModifiers(tstClass,
                                                     tstClassTreePath,
                                                     currModifiers,
                                                     suiteMembers,
                                                     workingCopy);
    if (!membersChanged) {
        if (modifiers != currModifiers) {
            workingCopy.rewrite(currModifiers, modifiers);
        }
        return tstClass;
    }

    return workingCopy.getTreeMaker().Class(
            modifiers,
            tstClass.getSimpleName(),
            tstClass.getTypeParameters(),
            tstClass.getExtendsClause(),
            (List<? extends ExpressionTree>) tstClass.getImplementsClause(),
            tstMembers);
}
 
源代码15 项目: netbeans   文件: ModifiersTest.java
/**
 * Original:
 * 
 * public class Test {
 * ...
 * 
 * Result:
 * 
 * @Annotation(value = { "Lojza", "Karel" })
 * public class Test {
 * ...
 * 
 */
public void testAddArrayValue() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package hierbas.del.litoral;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "public class Test {\n" +
            "    public Test() {\n" +
            "    }\n" +
            "}\n"
            );
    String golden =
            "package hierbas.del.litoral;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "@Annotation(value = {\"Lojza\", \"Karel\"})\n" +
            "public class Test {\n" +
            "    public Test() {\n" +
            "    }\n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            List<LiteralTree> l = new ArrayList<LiteralTree>();
            l.add(make.Literal("Lojza"));
            l.add(make.Literal("Karel"));
            NewArrayTree nat = make.NewArray(null, Collections.<ExpressionTree>emptyList(), l);
            AssignmentTree at = make.Assignment(make.Identifier("value"), nat);
            AnnotationTree ann = make.Annotation(make.Identifier("Annotation"), Collections.<ExpressionTree>singletonList(at));
            workingCopy.rewrite(mods, make.Modifiers(mods.getFlags(), Collections.<AnnotationTree>singletonList(ann)));
        }
        
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码16 项目: netbeans   文件: ModifiersTest.java
public void testRenameAnnotationAttribute() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "/**\n" +
            " *aa\n" +
            " */\n" +
            "@Annotation(val = 2)\n" +
            "public class Test {\n" +
            "}\n"
            );
    String golden =
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "/**\n" +
            " *aa\n" +
            " */\n" +
            "@Annotation(value = 2)\n" +
            "public class Test {\n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            AnnotationTree annotationTree = mods.getAnnotations().get(0);
            AssignmentTree assignementTree = (AssignmentTree) annotationTree.getArguments().get(0);
            workingCopy.rewrite(assignementTree.getVariable(), make.Identifier("value"));
        }
        
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码17 项目: netbeans   文件: ModifiersTest.java
public void test106403() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "/**\n" +
            " *aa\n" +
            " */\n" +
            "@Annotation\n" +
            "public class Test {\n" +
            "}\n"
            );
    String golden =
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "/**\n" +
            " *aa\n" +
            " */\n" +
            "@Annotation(val = 2)\n" +
            "public class Test {\n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            AnnotationTree annotationTree = mods.getAnnotations().get(0);
            AnnotationTree modified = make.addAnnotationAttrValue(
                    annotationTree, 
                    make.Assignment(make.Identifier("val"), make.Literal(2))
            );
            workingCopy.rewrite(annotationTree, modified);
        }
        
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码18 项目: netbeans   文件: ModifiersTest.java
public void testRemoveClassAnnotation() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "@Annotation\n" +
            "public class Test {\n" +
            "    void alois() {\n" +
            "    }\n" +
            "    \n" +
            "}\n"
            );
    String golden =
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "public class Test {\n" +
            "    void alois() {\n" +
            "    }\n" +
            "    \n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            ModifiersTree modified = make.removeModifiersAnnotation(mods, 0);
            workingCopy.rewrite(mods, modified);
        }
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码19 项目: netbeans   文件: ModifiersTest.java
public void testRemoveClassAnnotationAttribute1() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "@Annotation(attr1 = \"aa\", attr2 = \"bb\")\n" +
            "public class Test {\n" +
            "    void alois() {\n" +
            "    }\n" +
            "    \n" +
            "}\n"
            );
    String golden =
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "@Annotation(attr1 = \"aa\")\n" +
            "public class Test {\n" +
            "    void alois() {\n" +
            "    }\n" +
            "    \n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            AnnotationTree ann = mods.getAnnotations().get(0);
            AnnotationTree modified = make.removeAnnotationAttrValue(ann, 1);
            workingCopy.rewrite(ann, modified);
        }
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}
 
源代码20 项目: netbeans   文件: ModifiersTest.java
public void testRemoveClassAnnotationAttribute5() throws Exception {
    testFile = new File(getWorkDir(), "Test.java");
    TestUtilities.copyStringToFile(testFile,
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "@Annotation(attr1 = \"aa\", attr2 = \"bb\", attr3 = \"cc\")\n" +
            "public class Test {\n" +
            "    void alois() {\n" +
            "    }\n" +
            "    \n" +
            "}\n"
            );
    String golden =
            "package flaska;\n" +
            "\n" +
            "import java.io.*;\n" +
            "\n" +
            "@Annotation()\n" +
            "public class Test {\n" +
            "    void alois() {\n" +
            "    }\n" +
            "    \n" +
            "}\n";
    JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile));
    Task<WorkingCopy> task = new Task<WorkingCopy>() {
        
        public void run(WorkingCopy workingCopy) throws java.io.IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0);
            ModifiersTree mods = clazz.getModifiers();
            AnnotationTree ann = mods.getAnnotations().get(0);
            AnnotationTree modified = make.removeAnnotationAttrValue(ann, 2);
            modified = make.removeAnnotationAttrValue(modified, 1);
            modified = make.removeAnnotationAttrValue(modified, 0);
            workingCopy.rewrite(ann, modified);
        }
    };
    testSource.runModificationTask(task).commit();
    String res = TestUtilities.copyFileToString(testFile);
    //System.err.println(res);
    assertEquals(golden, res);
}