问题标签 [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 回答
108 浏览

java - 在 XJC 插件的 CodeModel 中找不到异常类

我正在从 PeopleSoft 提供的 WSDL 生成自定义 Java 代码。我编写了几个 XJC 插件来尝试清理生成的代码以便更易于使用——添加接口和自定义方法等。

但是,我想为生成的异常类添加一个通用接口,但在我的插件中,这些类似乎不存在。

生成的异常类如下所示:

它们都具有相同的命名模式(M 后跟一串数字,以 V1 结尾)并且它们都扩展了 java.lang.Exception。但是,它们都有一个通用方法,getFaultInfo()我想将其添加到接口中。

在我的插件中,我遍历所有提供的类,Outline.getClasses()并检查每个类是否扩展了 java.lang.Exception。

这无法找到任何异常类。

我也尝试过按名称匹配:

这也会失败,并且日志消息(“正在检查类...”)不会打印最终生成的任何异常类。

我还尝试将此代码从run()方法中移出并移到postProcessModel()我的插件的方法中,希望稍后在该过程中执行的代码会有所帮助。这也失败了。

代码按预期执行,所以我确信我的插件配置是正确的。此外,我以同样的方式捕获和修改了其他类。在运行时模型中似乎没有任何异常。但是,每次都会正确生成异常类。

有没有办法在运行时从 XJC 插件中捕获这些类?

提前感谢您提供的任何帮助。

0 投票
1 回答
455 浏览

java - Java:使用 Codemodel 生成具有默认值的注释

我为我的项目使用 Sun CodeModel 代码生成器。在此期间,我开始生成注释类。此类将有一个数组成员,该成员将空数组作为默认值。请参见以下示例:

我使用此代码生成注释

但我不知道如何生成默认声明。它只生成以下内容:

0 投票
1 回答
126 浏览

java - 使用 sun-codemodel 创建抽象方法实现?

我正在尝试使用 sun-codemodel 创建以下内容。

以下是我的代码。但它是完整的。我不知道如何完成它。

以下是我当前的输出。

0 投票
1 回答
1382 浏览

java - 使用代码模型添加导入

我正在尝试使用代码模型在我的代码中导入一个类。这是我的代码。

现在我得到以下课程。

但实际上我需要的是,

除非使用,否则导入不会到来。我怎样才能进行此导入。

0 投票
1 回答
727 浏览

java - 如何在 Java CodeModel API 中分配具有多个参数的方法

我想使用 Java CodeModel API 生成如下示例的代码

我已经用 @Test 注释声明了类变量a&b方法 testMethod 。现在我陷入了以下几点:

  1. 无法在方法中抛出多个异常(抛出 excep1、excep2、excep3)。

  2. 无法调用具有多个参数的方法并在类变量中分配该调用 a = abc.method1(b.param1, param2, param3)

我该如何解决这些问题?

0 投票
1 回答
281 浏览

java - 泛型的代码模型窄

我想生成一个新类,如下所示:

我试过了,但它并没有缩小延伸范围......

但结果却像

有任何想法吗?

0 投票
1 回答
101 浏览

java - Sun CodeModel 使用带有 JInvocation.arg 的类

我正在使用 sun 的代码模型 (2.4.1) 类来生成代码。如何将类传递给 JInvocation.arg?我试图生成的代码是:

我正在运行的代码是:

我想生产什么:

甚至更好:

0 投票
2 回答
572 浏览

sun-codemodel - 创建一个返回我想在 Codemodel 中生成的类的方法

我需要生成一个类,该类必须有一个返回同一类对象的方法。

我想生成这样的东西

问题是我必须传递该方法返回的类的 Class 对象。如果我这样做,因为我的课程还没有建立,我会得到一个 ClassNotFoundException。有没有办法实现这一目标?

谢谢。

0 投票
1 回答
67 浏览

java - Java sun CodeModel 数学运算

有人知道如何在 codeModel 中执行数学运算吗?我到处都想不通。我有我生成的类,我想添加 2 个变量(我已经使用 完成了Long.staticInvoke("sum"),但我的意思是添加、减法、乘法、除法和所有这些东西)。我想要实现的示例输出:

我有这样的事情:

有任何想法吗?

0 投票
1 回答
547 浏览

java - 如何删除 JDefinedClass 上的注释

我正在 jsonschema2pojo 中编写一个自定义注释器,以调整此代码生成器如何使用 Jackson 注释来注释生成的类。

为了简化用例,我手头有一个 JClass,它已经用

我想将其替换为:

我正在使用 com.sun.codemodel:codemodel:2.6

如果我尝试添加注释而不删除原始注释

然后我收到一个编译错误,说我的模式不能超过一个@JsonInclude。

所以我尝试在添加之前删除注释

但是注释的集合是不可修改的......

有没有办法从 JDefinedClass 中删除特定的注释?