2012-01-28 13 views
0

私は1000個以上のPOJOを持っています。そのプロパティは、私が作成したカスタムXML解析注釈ライブラリに従って正しく注釈を付ける必要があります。Javaクラスに自動的に注釈を付けるためのプログラム/スクリプト

  1. 「すべて」の削除既存の注釈
  2. 再アノテートのPOJOから:POJOの数が多く、彼らはすでにJAXB注釈付きなので、私は タスクの自動化を必要とします(2)複雑で、私はJに「publicクラスXYZ」を検出して開始したい

    「@」で始まる行を削除 - ルールは(1)のためのシンプルな1

この後AVAクラス、および@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を好むと思います。私は次のステップにリフレクションを使用する必要があるかもしれません。

ありがとうございます!

EDIT: は、私は上記の例は非常に単純で、正規表現のツールを使用して達成することができます理解して - 私は、このためのスクリプト/プログラムが必要です。コミュニティがこのような「シンプルな」ケースのコード作成を手助けできるならば、IDEに組み込まれた正規表現ツールを使って(手作業を多用することなく)行うことはできません。

EDIT 2: は、私は(3)私の問題は、あなたが/正規表現検索を行うすべてのjava-ファイルに置き換えることができ

+0

リフレクションは、ソースコードではなくバイトコードで動作します。最初の "public class Foo。* {"を検出するのはかなり簡単です。私はこの作業にJavaを使用しません。 –

+0

私は変数のデータ型を(実行時に)検出し、それに応じてその変数に注釈を付け、その注釈が追加されたソースファイルを書き込むことを計画しました。確かに、これは単独で反射を使用することはできません... – SlowAndSteady

+0

それは長い道のりのようです。 –

答えて

0

インテリジェントのStructural search and replaceがお手伝いします。いくつかのプログラムを書くために開いている場合は、eclipse AST modificationを試してみてください。また、開始するにはsample codeがあります。

+0

興味深いリンクありがとう!私はまだこれを確認する必要があります。今すぐあなたの答えを受け入れる。 – SlowAndSteady

+0

@Raj。我々はあなたのコードを見て、それを使用することは非常に幸せになります:) – Jayan

1

を「本物」に見えるようにポイントを追加しました。

  1. すると@.*を交換してください ""

  2. 検索::

public class (.*) \{

とで置き換える:

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

のIntelliJ IDEAで

もちろん他のエディタでも行うことができますが、\$1を使った逆参照は異なる場合があります。

関連する問題