Class XMLClassDescriptorResolverImpl

java.lang.Object
org.exolab.castor.xml.util.XMLClassDescriptorResolverImpl
All Implemented Interfaces:
ClassDescriptorResolver, XMLClassDescriptorResolver

public class XMLClassDescriptorResolverImpl extends Object implements XMLClassDescriptorResolver
The default implementation of the ClassDescriptorResolver interface.
Version:
$Revision: 8691 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
Author:
Keith Visco
  • Constructor Details

    • XMLClassDescriptorResolverImpl

      public XMLClassDescriptorResolverImpl()
      Creates a new ClassDescriptorResolverImpl. It is left empty to avoid cycles at construction. To guarantee backward compatibility the backwardInit method will do all required initialization if it hadn't happened before.
  • Method Details

    • setInternalContext

      public void setInternalContext(InternalContext internalContext)
      To set the XMLContext to be used. The InternalContext itself is not stored! But all values of interest are read and stored in local attributes.
      Specified by:
      setInternalContext in interface XMLClassDescriptorResolver
      Parameters:
      internalContext - the XMLContext to be used
    • getMappingLoader

      public MappingLoader getMappingLoader()
      Note: This method will be removed soon (kv).
      Specified by:
      getMappingLoader in interface ClassDescriptorResolver
    • setClassLoader

      public void setClassLoader(ClassLoader loader)
      Sets the ClassLoader to use when loading class descriptors.
      Specified by:
      setClassLoader in interface XMLClassDescriptorResolver
      Parameters:
      loader - the ClassLoader to use
    • setUseIntrospection

      public void setUseIntrospection(boolean enable)
      Enables or disables introspection. Introspection is enabled by default.
      Specified by:
      setUseIntrospection in interface XMLClassDescriptorResolver
      Parameters:
      enable - a flag to indicate whether or not introspection is allowed.
    • setLoadPackageMappings

      public void setLoadPackageMappings(boolean loadPackageMappings)
      Sets whether or not to look for and load package specific mapping files (".castor.xml").
      Specified by:
      setLoadPackageMappings in interface XMLClassDescriptorResolver
      Parameters:
      loadPackageMappings - a boolean that enables or disables the loading of package specific mapping files
    • setMappingLoader

      public void setMappingLoader(MappingLoader mappingLoader)
      Sets the mapping loader for this ClassDescriptorResolver. Note: This method will be removed soon (kv).
      Specified by:
      setMappingLoader in interface ClassDescriptorResolver
    • setIntrospector

      public void setIntrospector(Introspector introspector)
      To set the Introspector to be used. It is stored as attribute of resolver and set as property into the current strategy.
      Specified by:
      setIntrospector in interface XMLClassDescriptorResolver
      Parameters:
      introspector - the Introspector to use
    • setResolverStrategy

      public void setResolverStrategy(ResolverStrategy resolverStrategy)
      The resolver strategy to use for class and package resolving. Will set the current attributes into the new strategy.
      Specified by:
      setResolverStrategy in interface XMLClassDescriptorResolver
      Parameters:
      resolverStrategy - the ResolverStrategy to use for resolve calls
    • resolve

      public ClassDescriptor resolve(Class<?> type) throws ResolverException
      Returns the ClassDescriptor for the given class.
      Specified by:
      resolve in interface ClassDescriptorResolver
      Parameters:
      type - the Class to find the ClassDescriptor for
      Returns:
      the ClassDescriptor for the given class
      Throws:
      ResolverException
    • resolve

      public XMLClassDescriptor resolve(String className) throws ResolverException
      Returns the XMLClassDescriptor for the given class name.
      Specified by:
      resolve in interface XMLClassDescriptorResolver
      Parameters:
      className - the class name to find the XMLClassDescriptor for
      Returns:
      the XMLClassDescriptor for the given class name
      Throws:
      ResolverException - in case that resolving fails unrecoverable
    • resolve

      public XMLClassDescriptor resolve(String className, ClassLoader loader) throws ResolverException
      Returns the XMLClassDescriptor for the given class name.
      Specified by:
      resolve in interface XMLClassDescriptorResolver
      Parameters:
      className - the class name to find the XMLClassDescriptor for
      loader - the ClassLoader to use
      Returns:
      the XMLClassDescriptor for the given class name
      Throws:
      ResolverException - in case that resolving fails unrecoverable
    • resolveByXMLName

      public XMLClassDescriptor resolveByXMLName(String xmlName, String namespaceURI, ClassLoader loader)
      Returns the first XMLClassDescriptor that matches the given XML name and namespaceURI. Null is returned if no descriptor can be found.
      Specified by:
      resolveByXMLName in interface XMLClassDescriptorResolver
      Parameters:
      xmlName - The class name to find the XMLClassDescriptor for.
      namespaceURI - The namespace URI to identify the XMLClassDescriptor.
      loader - The ClassLoader to use.
      Returns:
      The XMLClassDescriptor for the given XML name.
    • resolveAllByXMLName

      public Iterator<ClassDescriptor> resolveAllByXMLName(String xmlName, String namespaceURI, ClassLoader loader)
      Returns an enumeration of XMLClassDescriptor objects that match the given xml name.
      Specified by:
      resolveAllByXMLName in interface XMLClassDescriptorResolver
      Parameters:
      xmlName - The class name to find the XMLClassDescriptor for.
      namespaceURI - The namespace URI to identify the XMLClassDescriptor.
      loader - The ClassLoader to use.
      Returns:
      An Iterator of XMLClassDescriptor objects.
    • addClass

      public void addClass(String className) throws ResolverException
      Loads the class descriptor for the class instance specified. The use of this method is useful when no mapping is used, as happens when the domain classes hase been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).
      Specified by:
      addClass in interface XMLClassDescriptorResolver
      Parameters:
      className - Name of the class for which the associated descriptor should be loaded.
      Throws:
      ResolverException - If there's an unrecoverable problem with resolving a certain class.
    • addClasses

      public void addClasses(String[] classNames) throws ResolverException
      Loads the class descriptors for the class instances specified. The use of this method is useful when no mapping is used, as happens when the domain classes hase been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).
      Specified by:
      addClasses in interface XMLClassDescriptorResolver
      Parameters:
      classNames - Names of the classes for which the associated descriptors should be loaded.
      Throws:
      ResolverException - If there's an unrecoverable problem with resolving a certain class.
    • addClass

      public void addClass(Class<?> clazz) throws ResolverException
      Loads the class descriptor for the class instance specified. The use of this method is useful when no mapping is used, as happens when the domain classes have been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).
      Specified by:
      addClass in interface XMLClassDescriptorResolver
      Parameters:
      clazz - Class for which the associated descriptor should be loaded.
      Throws:
      ResolverException - If there's an unrecoverable problem with resolving a certain class.
    • addClasses

      public void addClasses(Class<?>[] clazzes) throws ResolverException
      Loads the class descriptors for the class instances specified. The use of this method is useful when no mapping is used, as happens when the domain classes hase been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).
      Specified by:
      addClasses in interface XMLClassDescriptorResolver
      Parameters:
      clazzes - Classes for which the associated descriptors should be loaded.
      Throws:
      ResolverException - If there's an unrecoverable problem with resolving a certain class.
    • addPackage

      public void addPackage(String packageName) throws ResolverException
      Loads class descriptors from the package specified. The use of this method is useful when no mapping is used, as happens when the domain classes hase been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).

      Please note that this functionality will work only if you provide the .castor.cdr file with your generated classes (as generated by the XML code generator).

      Specified by:
      addPackage in interface XMLClassDescriptorResolver
      Parameters:
      packageName - The package name for the (descriptor) classes
      Throws:
      ResolverException - If there's a problem loading class descriptors for the given package.
    • addPackages

      public void addPackages(String[] packageNames) throws ResolverException
      Loads class descriptors from the packages specified. The use of this method is useful when no mapping is used, as happens when the domain classes hase been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).

      Please note that this functionality will work only if you provide the .castor.cdr files with your generated classes (as generated by the XML code generator).

      Specified by:
      addPackages in interface XMLClassDescriptorResolver
      Parameters:
      packageNames - The package names for the (descriptor) classes
      Throws:
      ResolverException - If there's a problem loading class descriptors for the given package.
    • loadClassDescriptors

      public void loadClassDescriptors(String packageName) throws ResolverException
      Deprecated.
      Loads class descriptors from the package specified. The use of this method is useful when no mapping is used, as happens when the domain classes hase been generated using the XML code generator (in which case instead of a mapping file class descriptor files will be generated).

      Please note that this functionality will work only if you provide the .castor.cdr file with your generated classes (as generated by the XML code generator).

      Specified by:
      loadClassDescriptors in interface XMLClassDescriptorResolver
      Parameters:
      packageName - The package name for the (descriptor) classes
      Throws:
      ResolverException - If there's a problem loading class descriptors for the given package.
    • cleanDescriptorCache

      public void cleanDescriptorCache()
      Cleans the descriptor cache.
      Specified by:
      cleanDescriptorCache in interface XMLClassDescriptorResolver
      See Also: