org.apache.naming.factory

## 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 Summary

    Constructors
    Constructor and Description
    `FactoryBase()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract ObjectFactory` | `getDefaultFactory(Reference ref)` If a default factory is available for the given reference type, create the default factory.
    `protected abstract Object` | `getLinked(Reference ref)` If this reference is a link to another JNDI object, obtain that object.
    `Object` | `getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment)` Creates a new object instance.
    `protected abstract boolean` | `isReferenceTypeSupported(Object obj)` Determines if this factory supports processing the provided reference object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FactoryBase

          public FactoryBase()

  - ### Method Detail

    - #### 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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.