CastFactory getCastFactory(IConfigurableResourceContext cxt) { if (factory == null) { synchronized (this) { if (factory == null) { ClassLoader classLoader = cxt.getClassLoader(); String uri = getUri(); Class<?> libClass = ClassFactory.validateClassExistsAndPublic(libraryClassName, classLoader, uri); Class<?> implClass = ClassFactory.validateClassExistsAndPublic(className, classLoader, uri); // Strange reflection logic with implementation cast! CastFactory castFactory = (CastFactory) ClassFactory.newInstance(implClass, uri); castFactory.setMethodFactory(new StaticClassLibrary(JavaOpenClass.getOpenClass(libClass))); castFactory.setGlobalCastFactory(configuration); factory = castFactory; } } } return factory; }
CastFactory getCastFactory(IConfigurableResourceContext cxt) { if (factory == null) { synchronized (this) { if (factory == null) { ClassLoader classLoader = cxt.getClassLoader(); String uri = getUri(); Class<?> libClass = ClassFactory.validateClassExistsAndPublic(libraryClassName, classLoader, uri); Class<?> implClass = ClassFactory.validateClassExistsAndPublic(className, classLoader, uri); // Strange reflection logic with implementation cast! CastFactory castFactory = (CastFactory) ClassFactory.newInstance(implClass, uri); castFactory.setMethodFactory(new StaticClassLibrary(JavaOpenClass.getOpenClass(libClass))); castFactory.setGlobalCastFactory(configuration); factory = castFactory; } } } return factory; }
public void validate(IConfigurableResourceContext cxt) throws OpenConfigurationException { ClassFactory.validateClassExistsAndPublic(libraryClassName, cxt.getClassLoader(), getUri()); Class<?> implClass = ClassFactory.validateClassExistsAndPublic(className, cxt.getClassLoader(), getUri()); ClassFactory.validateSuper(implClass, CastFactory.class, getUri()); ClassFactory.validateHaveNewInstance(implClass, getUri()); }
public void validate(IConfigurableResourceContext cxt) throws OpenConfigurationException { ClassFactory.validateClassExistsAndPublic(libraryClassName, cxt.getClassLoader(), getUri()); Class<?> implClass = ClassFactory.validateClassExistsAndPublic(className, cxt.getClassLoader(), getUri()); ClassFactory.validateSuper(implClass, CastFactory.class, getUri()); ClassFactory.validateHaveNewInstance(implClass, getUri()); }