package org.seasar.struts;

import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.SingletonS2ContainerFactory;

/**
 * S2Strutsを使用する為に必要な初期化を行う。
 * 
 * @author Satoshi Kimura
 */
public class S2StrutsInitializer {

    private S2StrutsInitializer() {
    }

    /**
     * {@link S2Container}に対して、S2Strutsに必要なコンポーネントを登録する。
     */
    public synchronized static void init() {
        S2Container container = SingletonS2ContainerFactory.getContainer();
        regist(container, ComponentNameCreator.class, ComponentNameCreatorImpl.class);
    }
    
    private static void regist(S2Container container, Class interfaceClass, Class implClass) {
        if (false == container.hasComponentDef(interfaceClass)) {
            container.register(implClass);
        }
    }
}