/*
 * Copyright 2004-2013 the Seasar Foundation and the Others.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */
package org.seasar.framework.container.factory;

import org.seasar.framework.xml.TagHandlerRule;

/**
 * diconファイルに記述されるタグと{@link org.seasar.framework.xml.TagHandler}のマッピング情報を定義します。
 * <p>
 * マッピング情報は、{@link org.seasar.framework.container.factory.XmlS2ContainerBuilder}で利用されます。
 * </p>
 * 
 * @author higa
 * @author yatsu
 */
public class S2ContainerTagHandlerRule extends TagHandlerRule {

    private static final long serialVersionUID = -7794896627632923326L;

    /**
     * {@link org.seasar.framework.container.factory.S2ContainerTagHandlerRule}
     * を構築します。
     * <p>
     * タグとタグに対応する{@link org.seasar.framework.xml.TagHandler}のマッピング情報をセットします。
     * </p>
     */
    public S2ContainerTagHandlerRule() {
        addTagHandler("/components", new ComponentsTagHandler());
        addTagHandler("component", new ComponentTagHandler());
        addTagHandler("arg", new ArgTagHandler());
        addTagHandler("property", new PropertyTagHandler());
        addTagHandler("meta", new MetaTagHandler());
        addTagHandler("initMethod", new InitMethodTagHandler());
        addTagHandler("destroyMethod", new DestroyMethodTagHandler());
        addTagHandler("aspect", new AspectTagHandler());
        addTagHandler("interType", new InterTypeTagHandler());
        addTagHandler("/components/include", new IncludeTagHandler());
    }
}
