問題タブ [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.
java - XJC プラグインの CodeModel で例外クラスが見つかりません
PeopleSoft が提供する WSDL からカスタム Java コードを生成しています。生成されたコードをクリーンアップして使いやすくするために、いくつかの XJC プラグインを作成しました (インターフェイスやカスタム メソッドの追加など)。
ただし、生成された例外クラスに共通のインターフェイスを追加したいのですが、プラグイン内にクラスが存在しないようです。
生成された Exception クラスは次のようになります。
それらはすべて同じ命名パターン (M の後に数字の文字列が続き、V1 で終わる) を持ち、すべて java.lang.Exception を拡張します。getFaultInfo()
ただし、それらはすべて、インターフェースに追加したい共通のメソッド も持っています。
私のプラグインでは、によって提供されるすべてのクラスをループし、Outline.getClasses()
java.lang.Exception を拡張するかどうかをそれぞれチェックします。
これにより、例外クラスが見つかりません。
私も名前でマッチングを試みました:
これも失敗し、ログ メッセージ ("Checking class…") には、最終的に生成される例外クラスが出力されません。
また、プロセスの後半で実行されるコードが役立つことを期待して、このコードをメソッドからプラグインrun()
のメソッドに移動しようとしました。postProcessModel()
これも失敗しました。
コードは期待どおりに実行されるので、プラグインの構成は正しいと確信しています。また、同じ方法で他のクラスをキャプチャして変更しました。実行時にモデルに例外がないように見えます。ただし、例外クラスは毎回正しく生成されます。
実行時に XJC プラグインからこれらのクラスをキャプチャする方法はありますか?
ご協力いただきありがとうございます。
java - Java: Codemodel を使用してデフォルト値でアノテーションを生成する
私は自分のプロジェクトに Sun CodeModel コード ジェネレーターを使用しています。この間に、注釈クラスを生成することになりました。このクラスには、デフォルト値として空の配列を取る配列メンバーがあります。次の例を参照してください。
このコードを使用して注釈を生成しました
しかし、デフォルトの宣言を生成する方法がわかりません。以下のみを生成します。
java - コード モデルを使用してインポートを追加する
コード モデルを使用してコードにクラスをインポートしようとしています。これは私のコードです。
今、結果として次のクラスを取得しています。
しかし、実際に必要なのは、
使わないと輸入が来ません。このインポートを行うにはどうすればよいですか。
java - Java CodeModel API で複数の引数を持つメソッドを割り当てる方法
Java CodeModel API を使用して以下の例のようなコードを生成したい
@Test アノテーションを使用して、クラス変数a
& b
、メソッド testMethod を既に宣言しています。今、私は以下の点で立ち往生しています:
メソッドで複数の例外をスローすることはできません (例外 1、例外 2、例外 3 をスローします)。
複数のパラメーターを使用してメソッドを呼び出すことができず、その呼び出しをクラス変数に割り当てることができません
a = abc.method1(b.param1, param2, param3)
これらの問題を解決するにはどうすればよいですか?
java - ジェネリックのコードモデルが狭い
次のように新しいクラスを生成したいと思います。
私はこれを試しましたが、拡張を狭めません...
しかし、代わりに次のようになります
何か案は?
java - JInvocation.arg でクラスを使用する Sun CodeModel
コードを生成するために、sun のコード モデル (2.4.1) クラスを使用しています。クラスを JInvocation.arg に渡すにはどうすればよいですか? 私が生成しようとしているコードは次のとおりです。
私が実行しているコードは次のとおりです。
私が作りたいもの:
またはさらに良い:
java - JDefinedClass の注釈を削除する方法
このコード ジェネレーターが生成されたクラスに Jackson アノテーションを付ける方法を微調整するために、jsonschema2pojo にカスタム アノテーターを作成しています。
ユースケースを単純化するために、すでに注釈が付けられている JClass を用意しています。
そして、私はそれを次のように置き換えたい:
私は com.sun.codemodel:codemodel:2.6 を使用しています
元の注釈を削除せずに注釈を追加しようとすると
次に、 @JsonInclude を 1 つしか使用できないというコンパイル エラーが発生します。
だから私はそれを追加する前に注釈を削除しようとしました
しかし、注釈のコレクションは変更できません...
JDefinedClass から特定の注釈を削除する方法はありますか?