Java OpenGL GL インターフェースには約 2000 のメソッドが含まれています。デバッグの目的で、インスタンスをラップし、ロギング中にインスタンスへの呼び出しをデリゲートしたいと考えています。ロギング コードは、いずれの場合も同じメソッドにプッシュできるため、メソッドの実装を書き出すタスクは自動化できるように見えます。私がやろうとしていることの例:
import javax.media.opengl.GL;
public class GLErrorLogger implements GL {
private final GL backing;
public GLErrorLogger(GL delegateToMe) {
backing = delegateToMe;
}
private void checkErrorCode() {
// Log frame and thread details depending on gl state
}
/**
* Example of a method
*/
@Override
public int glGenLists(int arg0) {
checkErrorCode();
int retVal = backing.glGenLists(arg0);
checkErrorCode();
return retVal;
}
// rest of methods here...
}
つまり、メソッド名とパラメーター (型を除く) をバッキング オブジェクトの呼び出しにコピーし、ログ メソッドへの呼び出しで囲み、戻り値の型がある場合は、結果をこの型の変数に割り当てて返します。メソッドの最後に。
メソッドを自動生成するための 1 回限りの Eclipse コード テンプレートの作成を検討しましたが、戻り値の型でパターン マッチングを行うすぐにわかる方法はありませんでした。Eclipseまたはそのコード生成ツールでこれを行う方法を誰かが提案して、正規表現ツールキットを引き出すのを節約できますか?