/** * {@inheritDoc} */ public XMLClassDescriptor resolve(final String className) throws ResolverException { if (className == null || className.length() == 0) { String message = "Cannot resolve a null or zero-length class name."; LOG.warn(message); throw new IllegalArgumentException(message); } if (_descriptorCache.getDescriptor(className) != null) { return _descriptorCache.getDescriptor(className); } ClassLoader l = _internalContext.getClassLoader(); if (l == null) { l = Thread.currentThread().getContextClassLoader(); } return this.resolve(className, l); } // -- resolve(String)
/** * {@inheritDoc} */ public ClassDescriptor resolve(final Class type) throws ResolverException { if (type == null) { String message = "Type argument must not be null for resolve"; LOG.warn(message); throw new IllegalArgumentException(message); } if (_descriptorCache.getDescriptor(type.getName()) != null) { return _descriptorCache.getDescriptor(type.getName()); } ClassLoader l = _internalContext.getClassLoader(); if (l == null) { l = type.getClassLoader(); } if (l == null) { l = Thread.currentThread().getContextClassLoader(); } return this.resolve(type.getName(), l); } // -- resolve(Class)
/** * {@inheritDoc} */ public XMLClassDescriptor resolve(final String className, final ClassLoader loader) throws ResolverException { if (className == null || className.length() == 0) { String message = "Cannot resolve a null or zero-length class name."; LOG.warn(message); throw new IllegalArgumentException(message); } if (_descriptorCache.getDescriptor(className) != null) { return _descriptorCache.getDescriptor(className); } ClassLoader l = loader; if (l == null) { l = _internalContext.getClassLoader(); } if (l == null) { l = Thread.currentThread().getContextClassLoader(); } getResolverStrategy().setProperty(ResolverStrategy.PROPERTY_CLASS_LOADER, l); return (XMLClassDescriptor) getResolverStrategy().resolveClass(_descriptorCache, className); } //-- resolve(String, ClassLoader)
/** * {@inheritDoc} The InternalContext itself is not stored! But all values of interest are read and * stored in local attributes. */ public void setInternalContext(final InternalContext internalContext) { _mappingLoader = internalContext.getMappingLoader(); _classLoader = internalContext.getClassLoader(); _useIntrospector = internalContext.getUseIntrospector(); _loadPackageMappings = internalContext.getLoadPackageMapping(); _introspector = internalContext.getIntrospector(); _resolverStrategy = internalContext.getResolverStrategy(); }