Class FactoryBase

java.lang.Object
org.apache.naming.factory.FactoryBase
All Implemented Interfaces:
ObjectFactory
Direct Known Subclasses:
EjbFactory, ResourceEnvFactory, ResourceFactory, TransactionFactory

public abstract class FactoryBase extends Object implements ObjectFactory
Abstract base class that provides common functionality required by sub-classes. This class exists primarily to reduce code duplication.
  • Constructor Details

    • FactoryBase

      public FactoryBase()
  • Method Details

    • getObjectInstance

      public final Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws Exception
      Creates a new object instance.
      Specified by:
      getObjectInstance in interface ObjectFactory
      Parameters:
      obj - The reference object describing the object to create
      Throws:
      Exception
    • isReferenceTypeSupported

      protected abstract boolean isReferenceTypeSupported(Object obj)
      Determines if this factory supports processing the provided reference object.
      Parameters:
      obj - The object to be processed
      Returns:
      true if this factory can process the object, otherwise false
    • getDefaultFactory

      protected abstract ObjectFactory getDefaultFactory(Reference ref) throws NamingException
      If a default factory is available for the given reference type, create the default factory.
      Parameters:
      ref - The reference object to be processed
      Returns:
      The default factory for the given reference object or null if no default factory exists.
      Throws:
      NamingException - If the default factory cannot be created
    • getLinked

      protected abstract Object getLinked(Reference ref) throws NamingException
      If this reference is a link to another JNDI object, obtain that object.
      Parameters:
      ref - The reference object to be processed
      Returns:
      The linked object or null if linked objects are not supported by or not configured for this reference object
      Throws:
      NamingException - Error accessing linked object