stringtemplate的ModelAdaptor可以回退到默认的stringtemplate属性评估吗?

时间:2014-01-30 22:45:55

标签: stringtemplate-4

看来,如果我为一个我提供给stringtemplate的类提供ModelAdaptor,那么我必须回复我想在模板中访问的每个属性。我喜欢能够为不遵循正常命名约定的属性实现getProperty,但让默认行为处理“普通”属性。是否有一个类我可以子类来获得正常的行为(当它不是我实现的属性时可能只调用super(),或者我可以调用以获取默认的stringtemplate逻辑的方法)?

也就是说,我只想处理适配器中的特殊属性。

1 个答案:

答案 0 :(得分:0)

您可以扩展ObjectModelAdaptor类。

重写getProperty方法以包含try / catch块,并使用catch块中的自定义处理STNoSuchPropertyException

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");
    }
  }
}