用于自动注释Java类的程序/脚本

时间:2012-01-28 13:43:47

标签: java file-io automation annotations sed

我有超过一千个POJO,其属性,我需要根据我制作的自定义XML解析注释库进行正确注释。由于POJO的数量很大,并且它们已经被JAXB注释,我需要自动执行 2 3 任务:

  1. 删除“所有”现有注释
  2. 从1
  3. 重新注释POJO

    规则很简单(1) - 删除任何以“@”

    开头的行

    (2)很复杂,我想从Java类中检测“public class XYZ”开始,并用@BeanName(beanName =“XYZ”)注释它

    在此之后,作为操作项(3),我需要在POJO中检测变量的数据类型,注释如下:

    @ClassMember(dataType = DataType.INTEGER, memberName = "tripId")
        public int tripId;
        @ClassMember(dataType = DataType.COMPLEX, memberName = "stop")
        public Stop stop;
    

    我认为sed脚本也可能有所帮助,但我更喜欢Java,因为我“猜测”,我可能需要使用反射进行后续步骤。

    谢谢!

    编辑: 我理解上述情况非常简单,可以使用正则表达式工具实现 - 但我需要一个脚本/程序。如果社区可以帮助我编写像这样的“简单”案例的代码,我可以扩展复杂的场景 - 使用IDE内置的正则表达式工具“无法”完成(无需大量手动干预)。

    编辑2: 我添加了一个要点(3)以使我的问题看起来“真实”

2 个答案:

答案 0 :(得分:1)

您可以在所有java文件中进行正则表达式搜索/替换。在IntelliJ IDEA中:

  1. @.*替换为“”

  2. 搜索:

  3. public class (.*) \{

    并替换为:

    @BeanName(beanName="\$1")\npublic class \$1 \{

    当然也可以在其他编辑器中完成,但使用\$1的反向引用可能会有所不同。

答案 1 :(得分:0)

Intellij的Structural search and replace将能够提供帮助。如果您愿意写一些程序,请尝试eclipse AST modification。它也有一些sample code开始。