public ClassFactory createGrammar() { ClassFactory cf = new ClassFactory(); cf.setExtendsClassName(IGrammar.class.getName()); conf.setGrammarFactory(cf); return cf; }
public void validate(IConfigurableResourceContext cxt) throws OpenConfigurationException { Class<?> c = validateClassExistsAndPublic(className, cxt.getClassLoader(), getUri()); if (getExtendsClassName() != null) { Class<?> c2 = validateClassExistsAndPublic(getExtendsClassName(), cxt.getClassLoader(), getUri()); validateSuper(c, c2, getUri()); } validateHaveNewInstance(c, getUri()); }
public synchronized IGrammar getGrammar() throws OpenConfigurationException { if (grammarFactory == null) { return parent.getGrammar(); } else { return (IGrammar) grammarFactory.getResource(configurationContext); } }
public synchronized Object getResource(IConfigurableResourceContext cxt) throws OpenConfigurationException { if (isSingleton()) { if (cachedObject == null) { cachedObject = getResourceInternal(cxt); } return cachedObject; } return getResourceInternal(cxt); }
Class<?> implementingClass = ClassFactory.validateClassExistsAndPublic(implementingClassName, cxt .getClassLoader(), getUri()); Object res = ClassFactory.newInstance(implementingClass, getUri()); Class<?> resourceClass = ClassFactory.validateClassExistsAndPublic(classResourse, cxt.getClassLoader(), getUri()); Method m = ClassFactory.validateHasMethod(implementingClass, "setClassResource", new Class[] { Class.class }, getUri()); m.invoke(res, new Object[] { resourceClass }); Method m = ClassFactory.validateHasMethod(implementingClass, "setFile", new Class[] { File.class }, getUri()); m.invoke(res, new Object[] { f }); Method m = ClassFactory.validateHasMethod(implementingClass, "setURL", new Class[] { File.class }, getUri()); m.invoke(res, new Object[] { url }); Method m = ClassFactory.validateHasMethod(implementingClass, "setProperty", new Class[] { String.class, String.class }, getUri()); for (StringProperty prop : properties) {
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 JavaImportTypeLibrary(String[] importPackages, String[] importClasses, ClassLoader loader) { this.loader = loader; if (importPackages == null) { this.importPackages = new String[] {}; } else { this.importPackages = importPackages; } if (importClasses != null) { for (String importClass : importClasses) { int index = importClass.lastIndexOf('.'); String alias = importClass.substring(index + 1); try{ Class<?> c = ClassFactory.forName(importClass, loader); aliases.put(alias, JavaOpenClass.getOpenClass(c)); }catch (Exception e) { //This never happens. Classes must be validated before. } } } }
protected Object getResourceInternal(IConfigurableResourceContext cxt) throws OpenConfigurationException { try { return cxt.getClassLoader().loadClass(className).newInstance(); } catch (Throwable t) { throw new OpenConfigurationException("Error creating " + className, getUri(), t); } }
public synchronized ITypeLibrary getLibrary(IConfigurableResourceContext cxt) { if (library == null) { library = (ITypeLibrary) ClassFactory.newInstance(className, cxt, getUri()); } return library; }
cfg.setClassName(BExGrammarWithParsingHelp.class.getName());
Class<?> implementingClass = ClassFactory.validateClassExistsAndPublic(implementingClassName, cxt .getClassLoader(), getUri()); Object res = ClassFactory.newInstance(implementingClass, getUri()); Class<?> resourceClass = ClassFactory.validateClassExistsAndPublic(classResourse, cxt.getClassLoader(), getUri()); Method m = ClassFactory.validateHasMethod(implementingClass, "setClassResource", new Class[] { Class.class }, getUri()); m.invoke(res, new Object[] { resourceClass }); Method m = ClassFactory.validateHasMethod(implementingClass, "setFile", new Class[] { File.class }, getUri()); m.invoke(res, new Object[] { f }); Method m = ClassFactory.validateHasMethod(implementingClass, "setURL", new Class[] { File.class }, getUri()); m.invoke(res, new Object[] { url }); Method m = ClassFactory.validateHasMethod(implementingClass, "setProperty", new Class[] { String.class, String.class }, getUri()); for (StringProperty prop : properties) {
public synchronized Object getResource(IConfigurableResourceContext cxt) throws OpenConfigurationException { if (isSingleton()) { if (cachedObject == null) { cachedObject = getResourceInternal(cxt); } return cachedObject; } return getResourceInternal(cxt); }
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 JavaImportTypeLibrary(String[] importPackages, String[] importClasses, ClassLoader loader) { this.loader = loader; if (importPackages == null) { this.importPackages = new String[] {}; } else { this.importPackages = importPackages; } if (importClasses != null) { for (String importClass : importClasses) { int index = importClass.lastIndexOf('.'); String alias = importClass.substring(index + 1); try{ Class<?> c = ClassFactory.forName(importClass, loader); aliases.put(alias, JavaOpenClass.getOpenClass(c)); }catch (Exception e) { //This never happens. Classes must be validated before. } } } }
protected Object getResourceInternal(IConfigurableResourceContext cxt) throws OpenConfigurationException { try { return cxt.getClassLoader().loadClass(className).newInstance(); } catch (Throwable t) { throw new OpenConfigurationException("Error creating " + className, getUri(), t); } }
public synchronized ITypeLibrary getLibrary(IConfigurableResourceContext cxt) { if (library == null) { library = (ITypeLibrary) ClassFactory.newInstance(className, cxt, getUri()); } return library; }
cfg.setClassName(BExGrammarWithParsingHelp.class.getName());
public void validate(IConfigurableResourceContext cxt) throws OpenConfigurationException { Class<?> c = validateClassExistsAndPublic(className, cxt.getClassLoader(), getUri()); if (getExtendsClassName() != null) { Class<?> c2 = validateClassExistsAndPublic(getExtendsClassName(), cxt.getClassLoader(), getUri()); validateSuper(c, c2, getUri()); } validateHaveNewInstance(c, getUri()); }
public ClassFactory createGrammar() { ClassFactory cf = new ClassFactory(); cf.setExtendsClassName(IGrammar.class.getName()); conf.setGrammarFactory(cf); return cf; }
public IOpenClass getType(String typename) { IOpenClass ioc = foundClasses.get(typename); if (ioc != null) return ioc; // if (blocked.contains(typename)) // throw new ClassNotFoundException(typename + " is blocked by OpenL"); // for (int i = 0; i < blockedClassPatterns.length; i++) { // if (blockedClassPatterns[i].matches(typename)) // { // throw new ClassNotFoundException(typename + " is blocked by OpenL"); // } // } try { Class<?> c = ClassFactory.forName(typename, loader); ioc = JavaOpenClass.getOpenClass(c); foundClasses.put(typename, ioc); return ioc; } catch (Throwable t) { } return null; } }