如何将现有的类添加到Spoon的输出中?

时间:2019-03-29 20:27:52

标签: inria-spoon

我有一个使用勺子库的简单kotlin应用程序。我将其指向一个目录,它将读取该树中的所有Java源代码,构建一个模型,然后浏览并删除所有JAXB注释。

然后我将修改后的代码写到一个单独的目录中

    val launcher = Launcher()
    // gobble up all source files recursively and build the model
    launcher.addInputResource(path.absolutePath)
    launcher.buildModel()

    ... processing ...

    launcher.environment.isAutoImports = true
    launcher.setSourceOutputDirectory("generated")
    launcher.modelBuilder.generateProcessedSourceFiles(OutputType.CLASSES)

这一切都很好,但是我想将我在项目中定义的几个类添加到spoon输出中。我可以通过以下方式获得对该类的引用:

val ctClass = launcher.factory.Class().get<MyClass>(MyClass::class.java)

但是我不知道如何在输出中获得汤匙以产生MyClass.java文件。我尝试使用以下方法将其添加到类型中:

launcher.model.allTypes.add(ctClass)

并且我尝试用以下方法克隆它:

launcher.factory.Core().clone(ctClass)

,但没有任何作用。可以这样做吗?

0 个答案:

没有答案