0

stringtemplate に提供するクラスに ModelAdaptor を提供する場合、テンプレートでアクセスしたいすべてのプロパティに応答する必要があるようです。通常の命名規則に従わないプロパティに対して getProperty を実装できるようにしたいと考えていますが、デフォルトの動作で「通常の」プロパティを処理できるようにしたいと考えています。通常の動作を取得するためにサブクラス化できるクラスはありますか (おそらく、実装したプロパティではない場合に super() を呼び出すだけ、またはデフォルトの stringtemplate ロジックを取得するために呼び出すことができるメソッド)?

つまり、アダプターで例外的なプロパティだけを処理したいと考えています。

4

1 に答える 1

0

ObjectModelAdaptorクラスを延長できます。

/ブロックgetPropertyを含めるようにメソッドをオーバーライドし、. のブロックでカスタム処理を使用します。trycatchcatchSTNoSuchPropertyException

public class MyModelAdaptor extends ObjectModelAdaptor {
  @Override
  public Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) {
    try {
      return super.getProperty(interp, self, o, property, propertyName);
    } catch (STNoSuchPropertyException ex) {
      throw new STNoSuchPropertyException("TODO: custom handling goes here");
    }
  }
}
于 2014-01-30T22:54:00.190 に答える