@Override protected ModelFactory getModelFactory(Class clazz) { if (Scriptable.class.isAssignableFrom(clazz)) { return RhinoScriptableModel.FACTORY; } return super.getModelFactory(clazz); } }
@Override @SuppressFBWarnings(value="JLM_JSR166_UTILCONCURRENT_MONITORENTER", justification="Locks for factory creation only") protected TemplateModel create(Object object) { Class clazz = object.getClass(); ModelFactory factory = (ModelFactory) classToFactory.get(clazz); if (factory == null) { // Synchronized so that we won't unnecessarily create the same factory for multiple times in parallel. synchronized (classToFactory) { factory = (ModelFactory) classToFactory.get(clazz); if (factory == null) { String className = clazz.getName(); // clear mappings when class reloading is detected if (!mappedClassNames.add(className)) { classToFactory.clear(); mappedClassNames.clear(); mappedClassNames.add(className); } factory = wrapper.getModelFactory(clazz); classToFactory.put(clazz, factory); } } } return factory.create(object, wrapper); } }
@Override protected ModelFactory getModelFactory(Class clazz) { if (Scriptable.class.isAssignableFrom(clazz)) { return RhinoScriptableModel.FACTORY; } return super.getModelFactory(clazz); } }
@Override protected ModelFactory getModelFactory(Class clazz) { if (Scriptable.class.isAssignableFrom(clazz)) { return RhinoScriptableModel.FACTORY; } return super.getModelFactory(clazz); } }
protected ModelFactory getModelFactory(Class clazz) { if(Scriptable.class.isAssignableFrom(clazz)) { return RhinoScriptableModel.FACTORY; } return super.getModelFactory(clazz); } }
protected TemplateModel create(Object object) { Class clazz = object.getClass(); ModelFactory factory; synchronized(classToFactory) { factory = (ModelFactory)classToFactory.get(clazz); if(factory == null) { String className = clazz.getName(); // clear mappings when class reloading is detected if(!mappedClassNames.add(className)) { classToFactory.clear(); mappedClassNames.clear(); mappedClassNames.add(className); } factory = wrapper.getModelFactory(clazz); classToFactory.put(clazz, factory); } } return factory.create(object, wrapper); } }
@Override @SuppressFBWarnings(value="JLM_JSR166_UTILCONCURRENT_MONITORENTER", justification="Locks for factory creation only") protected TemplateModel create(Object object) { Class clazz = object.getClass(); ModelFactory factory = (ModelFactory) classToFactory.get(clazz); if (factory == null) { // Synchronized so that we won't unnecessarily create the same factory for multiple times in parallel. synchronized (classToFactory) { factory = (ModelFactory) classToFactory.get(clazz); if (factory == null) { String className = clazz.getName(); // clear mappings when class reloading is detected if (!mappedClassNames.add(className)) { classToFactory.clear(); mappedClassNames.clear(); mappedClassNames.add(className); } factory = wrapper.getModelFactory(clazz); classToFactory.put(clazz, factory); } } } return factory.create(object, wrapper); } }
@Override @SuppressFBWarnings(value="JLM_JSR166_UTILCONCURRENT_MONITORENTER", justification="Locks for factory creation only") protected TemplateModel create(Object object) { Class clazz = object.getClass(); ModelFactory factory = (ModelFactory) classToFactory.get(clazz); if (factory == null) { // Synchronized so that we won't unnecessarily create the same factory for multiple times in parallel. synchronized (classToFactory) { factory = (ModelFactory) classToFactory.get(clazz); if (factory == null) { String className = clazz.getName(); // clear mappings when class reloading is detected if (!mappedClassNames.add(className)) { classToFactory.clear(); mappedClassNames.clear(); mappedClassNames.add(className); } factory = wrapper.getModelFactory(clazz); classToFactory.put(clazz, factory); } } } return factory.create(object, wrapper); } }