public ClassLoader getClassLoader() { return parserConfiguration.getClassLoader(); }
public ClassLoader getClassLoader() { return parserConfiguration.getClassLoader(); }
public ClassImportResolverFactory(ParserConfiguration pCfg, VariableResolverFactory nextFactory, boolean compiled) { if ( pCfg != null ) { if (!compiled) { packageImports = pCfg.getPackageImports(); } classLoader = pCfg.getClassLoader(); imports = Collections.unmodifiableMap(pCfg.getImports()); } else { classLoader = Thread.currentThread().getContextClassLoader(); } this.nextFactory = nextFactory; }
public ClassImportResolverFactory(ParserConfiguration pCfg, VariableResolverFactory nextFactory, boolean compiled) { if ( pCfg != null ) { if (!compiled) { packageImports = pCfg.getPackageImports(); } classLoader = pCfg.getClassLoader(); imports = Collections.unmodifiableMap(pCfg.getImports()); } else { classLoader = Thread.currentThread().getContextClassLoader(); } this.nextFactory = nextFactory; }
public ClassImportResolverFactory(ParserConfiguration ctx, VariableResolverFactory nextFactory) { packageImports = ctx.getPackageImports(); Map<String, Object> classes = ctx.getImports(); classLoader = ctx.getClassLoader(); this.nextFactory = nextFactory; this.variableResolvers = new HashMap<String, VariableResolver>(); for (Map.Entry<String, Object> e : classes.entrySet()) { variableResolvers.put(e.getKey(), new SimpleValueResolver(e.getValue())); } }
public static Class createClass(String className, ParserContext pCtx) throws ClassNotFoundException { ClassLoader classLoader = currentThread().getContextClassLoader(); Map<String, WeakReference<Class>> cache = CLASS_RESOLVER_CACHE.get(classLoader); if (cache == null) { CLASS_RESOLVER_CACHE.put(classLoader, cache = new WeakHashMap<String, WeakReference<Class>>(10)); } WeakReference<Class> ref; Class cls; if ((ref = cache.get(className)) != null && (cls = ref.get()) != null) { return cls; } else { try { cls = pCtx == null ? Class.forName(className, true, Thread.currentThread().getContextClassLoader()) : Class.forName(className, true, pCtx.getParserConfiguration().getClassLoader()); } catch (ClassNotFoundException e) { /** * Now try the system classloader. */ cls = forName(className, true, Thread.currentThread().getContextClassLoader()); } cache.put(className, new WeakReference<Class>(cls)); return cls; } }
private boolean checkForDynamicImport(String className) { if (packageImports == null) return false; if (!Character.isJavaIdentifierStart(className.charAt(0))) return false; if (nonValidImports.contains(className)) return false; int found = 0; Class cls = null; for (String pkg : packageImports) { try { cls = forNameWithInner( pkg + "." + className, getClassLoader() ); found++; } catch (Throwable cnfe) { // do nothing. } } if (found > 1) throw new RuntimeException("ambiguous class name: " + className); if (found == 1) { addImport(className, cls); return true; } cacheNegativeHitForDynamicImport(className); return false; }
private boolean checkForDynamicImport(String className) { if (packageImports == null) return false; if (!Character.isJavaIdentifierStart(className.charAt(0))) return false; if (nonValidImports.contains(className)) return false; int found = 0; Class cls = null; for (String pkg : packageImports) { try { cls = forNameWithInner( pkg + "." + className, getClassLoader() ); found++; } catch (Throwable cnfe) { // do nothing. } } if (found > 1) throw new RuntimeException("ambiguous class name: " + className); if (found == 1) { addImport(className, cls); return true; } cacheNegativeHitForDynamicImport(className); return false; }
try { return Class.forName(new String(expr, 0, cursor = last), true, pCtx != null ? pCtx.getParserConfiguration().getClassLoader() : currentThread().getContextClassLoader()); pCtx.getParserConfiguration().getClassLoader() : currentThread().getContextClassLoader()); String name = new String(expr, i + 1, expr.length - i - 1); try {
Constructor<?> cns = Class.forName(typeDescr.getClassName(), true, pCtx.getParserConfiguration().getClassLoader()) .getConstructor(EMPTYCLS);
Constructor<?> cns = Class.forName(typeDescr.getClassName(), true, pCtx.getParserConfiguration().getClassLoader()) .getConstructor(EMPTYCLS);