- /*
- * @(#)ObjectFactoryBuilder.java 1.5 00/02/02
- *
- * Copyright 1999, 2000 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the proprietary information of Sun Microsystems, Inc.
- * Use is subject to license terms.
- *
- */
-
- package javax.naming.spi;
-
- import java.util.Hashtable;
- import javax.naming.NamingException;
-
- /**
- * This interface represents a builder that creates object factories.
- *<p>
- * The JNDI framework allows for object implementations to
- * be loaded in dynamically via <em>object factories</em>.
- * For example, when looking up a printer bound in the name space,
- * if the print service binds printer names to References, the printer
- * Reference could be used to create a printer object, so that
- * the caller of lookup can directly operate on the printer object
- * after the lookup. An ObjectFactory is responsible for creating
- * objects of a specific type. JNDI uses a default policy for using
- * and loading object factories. You can override this default policy
- * by calling <tt>NamingManager.setObjectFactoryBuilder()</tt> with an ObjectFactoryBuilder,
- * which contains the program-defined way of creating/loading
- * object factories.
- * Any <tt>ObjectFactoryBuilder</tt> implementation must implement this
- * interface that for creating object factories.
- *
- * @author Rosanna Lee
- * @author Scott Seligman
- * @version 1.5 00/02/02
- *
- * @see ObjectFactory
- * @see NamingManager#getObjectInstance
- * @see NamingManager#setObjectFactoryBuilder
- * @since 1.3
- */
- public interface ObjectFactoryBuilder {
- /**
- * Creates a new object factory using the environment supplied.
- *<p>
- * The environment parameter is owned by the caller.
- * The implementation will not modify the object or keep a reference
- * to it, although it may keep a reference to a clone or copy.
- *
- * @param obj The possibly null object for which to create a factory.
- * @param environment Environment to use when creating the factory.
- * Can be null.
- * @return A non-null new instance of an ObjectFactory.
- * @exception NamingException If an object factory cannot be created.
- *
- */
- public ObjectFactory createObjectFactory(Object obj, Hashtable environment)
- throws NamingException;
- }