You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/08/02 07:22:15 UTC
cvs commit: jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel ComponentFactory.java
donaldp 2002/08/01 22:22:15
Added: containerkit/src/java/org/apache/excalibur/containerkit/kernel
ComponentFactory.java
Log:
Initial cut at a ComponentFactory interface.
This is used to create components and their
associated ComponentInfo objects.
Revision Changes Path
1.1 jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/ComponentFactory.java
Index: ComponentFactory.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.containerkit.kernel;
import org.apache.excalibur.containerkit.metainfo.ComponentInfo;
/**
* This interface defines the mechanism via which a
* component or its associated {@link ComponentInfo} can
* be created.
*
* <p>Usually the component or componentInfo will just be loaded
* from a particular ClassLoader. However if a developer wanted
* to dynamically assemble applications they could implement
* a custom factory that created components via non-standard
* mechanisms (say by wrapping remote, CORBA, or other style
* objects).</p>
*
* <p>The methods take a <code>implementationKey</code> parameter
* and usually this represents the class name of the component.
* However in alternative component systems this may designate
* objects via different mechanisms.</p>
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2002/08/02 05:22:15 $
*/
public interface ComponentFactory
{
/**
* Create a {@link ComponentInfo} for component
* specified by implementationKey.
*
* @param implementationKey the key indicating type of component (usually classname)
* @return the ComponentInfo for component
* @throws Exception if unable to create Info object
*/
ComponentInfo createInfo( String implementationKey )
throws Exception;
/**
* Create an instance of component with specified
* implementationKey.
*
* @param implementationKey the key indicating type of component (usually classname)
* @return an instance of component
* @throws Exception if unable to create component
*/
Object createComponent( String implementationKey )
throws Exception;
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>