private void addPropertyExtensions(STGroup group, ExtensionProvider extensionProvider) { Map<Class<?>, PropertyProvider> extenderMap = extensionProvider.propertyProviders(); for (Map.Entry<Class<?>, PropertyProvider> entry : extenderMap.entrySet()) { Class<?> objectClass = entry.getKey(); PropertyProvider extender = entry.getValue(); group.registerModelAdaptor(objectClass, new ObjectModelAdaptor() { @Override public synchronized Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) { if (extender.hasProperty(propertyName)) { return extender.getProperty(o, propertyName); } return super.getProperty(interp, self, o, property, propertyName); } }); } }
private void addPropertyExtensions(STGroup group, ExtensionProvider extensionProvider) { Map<Class<?>, PropertyProvider> extenderMap = extensionProvider.propertyProviders(); for (Map.Entry<Class<?>, PropertyProvider> entry : extenderMap.entrySet()) { Class<?> objectClass = entry.getKey(); PropertyProvider extender = entry.getValue(); group.registerModelAdaptor(objectClass, new ObjectModelAdaptor() { @Override public synchronized Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) { if (extender.hasProperty(propertyName)) { return extender.getProperty(o, propertyName); } return super.getProperty(interp, self, o, property, propertyName); } }); } }
public void execute() { STGroup targetGroup = new STGroupFile(runtimeTemplates.getPath()); targetGroup.registerModelAdaptor(STGroup.class, new STGroupModelAdaptor()); targetGroup.registerRenderer(String.class, new StringRenderer(), true); targetGroup.defineDictionary("escape", new JavaEscapeStringMap()); targetGroup.defineDictionary("lines", new LinesStringMap()); targetGroup.defineDictionary("strlen", new StrlenStringMap()); String rootFolder = "org/antlr/v4/test/runtime/templates"; generateCodeForFoldersInIndex(targetGroup, rootFolder); }
result.registerModelAdaptor(Map.class, new MapModelAdaptor() { @Override public Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) throws STNoSuchPropertyException {