问题标签 [sun-codemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2792 浏览

java - 在 com.sun.codemodel 中使用泛型

使用com.sun.codemodel,我想生成一个通用的 LinkedList 字段。我可以使用以下代码创建一个原始字段:

但我找不到一种方法来创建一个通用类型为detailClass.

0 投票
2 回答
4457 浏览

java - 右手 singleton.getinstance() 分配需要 CodeModel 帮助

我已经能够使用 CodeModel API 生成我需要的 99% 的东西,但我在这里被难住了......

使用各种“directXX”方法不会将导入语句添加到生成的代码中,并且我可以在没有“directXXX”类型的方法的情况下工作,除了生成类中的一个位置。

假设我想要一个生成的方法,例如:

您可以在括号中看到 Mapper 分配的右手。发出整个包+类是我能找到的在右侧声明“SomeSingleton.someMethod()”并编译生成的代码的唯一方法。如果没有将 MapperSingleton 添加到对象模型中,则不会生成导入...

问题:

1)有没有办法强制生成导入?

2)如何声明一个表达式,让我在对象模型中给出 Mapper 赋值的右侧(以便生成 MapperSingleton 的导入。

任何帮助表示赞赏...

0 投票
0 回答
1179 浏览

java - CodeModel 是否支持从未指定的包中导入类?

我想生成一个包含对类的引用的文件,而不知道它实际来自哪个包。

例如用户提供

我需要生成

该类Button可以在任一包中。CodeModel 支持这种场景吗?CodeModel中的示例需要右手 singleton.getinstance() 分配生成 Java 源文件的 Java API指定类的完整包名称,查看JavaDoc没有帮助。

0 投票
1 回答
838 浏览

java - 在带有 CodeModel 的 switch 中使用枚举常量

我正在使用代码模型 API来生成 java 源文件。我有一个通过 codemodel API 定义的枚举,我想在 switch 块中使用它。在 switch 语句中,枚举常量应该被用作不合格的。我无法访问枚举常量的非限定名称,因为代码模型 API 使用枚举类名称来限定常量。

简而言之,我想使用 codemodel API 生成以下代码片段。

但是 codemodel 像这样生成

感谢你的帮助。

0 投票
1 回答
597 浏览

java - 代码模型的三元运算符支持?

是否可以在生成的代码中使用三元运算符com.sun.codemodel

我希望生成以下语句:

0 投票
1 回答
227 浏览

java - CodeModel中如何获取Assert JClass?

org.junit包定义了Assert用于 JUnit 测试的类。如何JClassCodeModel框架中检索这个静态类?

0 投票
1 回答
1448 浏览

java - NoClassDefFoundError:注解处理期间的org/junit/AfterClass

我在使用 Maven 进行注释处理期间使用 CodeModel 生成代码。该代码用于 JUnit 测试:

然而,编译过程java.lang.NoClassDefFoundError : org/junit/AfterClass在尝试检索 时会抛出 a ,它AfterClass.class本身就是一个注解。

对 JUnit 的依赖定义如下:

所以AfterClass.class应该在我的代码中可用。

我该如何解决这个问题?

不清楚

调用 codemodel 的代码位于 junit 不是“测试”依赖项的编译库中。但是,调用生成代码的代码具有相同的 junit 依赖,但作为测试依赖。

如果我将后一种依赖项更改为“非测试”依赖项,问题就会消失。为什么我必须将此依赖项定义为“not-a-test”,尽管只有调用 codemodel 的库明确使用它?

编辑

这是依赖树:

很奇怪:

不包含org.junit,是的,这个库的 pom.xml 有:

0 投票
2 回答
1373 浏览

java - CodeModel - 如何使用枚举值定义注释?

似乎 java 代码生成器框架CodeModel无法创建仅包含没有名称的枚举值的注释- 不幸的是,这是一种非常常见的模式(例如,JPA 使用的模式):

API 文档仅说明TODO How to add enums to the annotations”

问题:
有没有办法解决这个限制?

0 投票
2 回答
1678 浏览

jaxb - CodeModel中ClassOutline/JClass/CClass的作用是什么?

我的问题涉及编写 JAXB 插件,特别是 JAXB 代码模型。

ClassOutline(和它的同伴)和JClass(和同伴)和CClass(和同伴)的作用是什么?查看相应包中的类列表时,不清楚什么是鸡什么是鸡蛋。

我的解释是CClass( CPropertyInfo, CEnumConstant, ...) 是 XJC 在 XSD 的初稿解析时创建的。然后发生了一些神奇的事情,这个模型被转换为JClass( JFieldVar, JEnumConstant, ...) 并且在这个转换过程中应用了自定义。之后调用插件。ClassOutline被用作这两个模型之间的桥梁。整体看起来非常复杂。

通过这些并行模型,我相信可以通过多种方式得出相同的信息。例如类字段类型:

  • JClass#fields()JFieldVar#typeJType
  • CClassInfo#getProperties()CPropertyInfo#baseTypeJType

我正在寻找上述模型生命周期的详细解释。谢谢。

0 投票
1 回答
3293 浏览

java - Sun CodeModel 泛型方法

有谁知道如何使用 CodeModel 生成以下通用方法声明?

用法:

似乎没有被现有的实现处理。

我知道我可以按如下方式处理代码,但它需要强制转换:

用法:

显然,由于演员阵容,这有点混乱。