package org.nightlabs.jfire.trade.ui.articlecontainer.detail.info;
import org.nightlabs.jfire.trade.ArticleContainer;
/**
* Interface which provides a factory pattern for creating new instances of specific implementations of {@link ArticleContainerInfoDelegate}.
* Implementations of this interface can be registered via the extension point {@link ArticleContainerInfoDelegateRegistry#EXTENSION_POINT_ID}
* and obtained via {@link ArticleContainerInfoDelegateRegistry#getArticleContainerInfoDelegateFactory(Class)}
*
* @author Daniel Mazurek - daniel [at] nightlabs [dot] de
*/
public interface ArticleContainerInfoDelegateFactory
{
/**
* Returns the implementation of {@link ArticleContainerInfoDelegate} for this factory.
* @return the implementation of {@link ArticleContainerInfoDelegate} for this factory
*/
ArticleContainerInfoDelegate createArticleContainerInfoDelegate();
// /**
// * Returns the index hint for this factory.
// * This information can be provided by the extension and the implementation with the lowest index will be used.
// *
// * @return the index hint for this factory
// */
// int getIndexHint();
/**
*
* @return the Class of {@link ArticleContainer} which can be handeled by the implementation of {@link ArticleContainerInfoDelegate}
* returned from {@link #createArticleContainerInfoDelegate()}
*/
Class<? extends ArticleContainer> getArticleContainerClass();
}