SearchEngineRuleSet.java :  » Content-Management-System » contelligent » de » finix » contelligent » xml » digester » Java Open Source

Java Open Source » Content Management System » contelligent 
contelligent » de » finix » contelligent » xml » digester » SearchEngineRuleSet.java
/*
 * Copyright 2001-2006 C:1 Financial Services GmbH
 *
 * This software is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License Version 2.1, as published by the Free Software Foundation.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
 */

package de.finix.contelligent.xml.digester;

import org.apache.commons.digester.Digester;
import org.apache.commons.digester.RuleSetBase;

import de.finix.contelligent.xml.elements.AnalyzerElement;
import de.finix.contelligent.xml.elements.ArgElement;
import de.finix.contelligent.xml.elements.IndexBuilderElement;
import de.finix.contelligent.xml.elements.IndexBuilderFilterElement;
import de.finix.contelligent.xml.elements.IndexElement;
import de.finix.contelligent.xml.elements.SearchEngineElement;

public class SearchEngineRuleSet extends RuleSetBase {

    protected String prefix;

    protected String setNextMethodName;

    public SearchEngineRuleSet(String prefix, String setNextMethodName) {
        this.prefix = prefix;
        this.setNextMethodName = setNextMethodName;
    }

    public void addRuleInstances(Digester digester) {
        digester.addObjectCreate(prefix + "search-engine", SearchEngineElement.class.getName());
        if (setNextMethodName != null) {
            digester.addSetNext(prefix + "search-engine", setNextMethodName, SearchEngineElement.class.getName());
        }
        digester.addObjectCreate(prefix + "search-engine/index", IndexElement.class.getName());
        digester.addSetProperties(prefix + "search-engine/index");
        digester.addSetNext(prefix + "search-engine/index", "addIndex", IndexElement.class.getName());
        digester.addObjectCreate(prefix + "search-engine/index/analyzer", AnalyzerElement.class.getName());
        digester.addSetProperties(prefix + "search-engine/index/analyzer");
        digester.addSetNext(prefix + "search-engine/index/analyzer", "setAnalyzerElement", AnalyzerElement.class
                .getName());
        digester.addCallMethod(prefix + "search-engine/index/analyzer/stopwords", "setStopwords", 0);
        digester.addCallMethod(prefix + "search-engine/index/analyzer/excludes", "setExcludes", 0);
        digester.addObjectCreate(prefix + "search-engine/index/crawler", IndexBuilderElement.class.getName());
        digester.addSetProperties(prefix + "search-engine/index/crawler");
        digester.addSetNext(prefix + "search-engine/index/crawler", "addBuilder", IndexBuilderElement.class.getName());

        digester.addObjectCreate("*/filter", IndexBuilderFilterElement.class.getName());
        digester.addSetProperties("*/filter");
        digester.addSetNext("*/filter", "addFilter", IndexBuilderFilterElement.class.getName());

        digester.addCallMethod(prefix + "search-engine/index/crawler/include", "addInclude", 2);
        digester.addCallParam(prefix + "search-engine/index/crawler/include", 0, "type");
        digester.addCallParam(prefix + "search-engine/index/crawler/include", 1, "subcomponent");

        digester.addObjectCreate("*/filter/arg", ArgElement.class.getName());
        digester.addSetProperties("*/filter/arg");
        digester.addSetNext("*/filter/arg", "addArg", ArgElement.class.getName());

        digester.addCallMethod(prefix + "search-engine/index/crawler/categoryvalue", "addCategoryValue", 2);
        digester.addCallParam(prefix + "search-engine/index/crawler/categoryvalue", 0, "name");
        digester.addCallParam(prefix + "search-engine/index/crawler/categoryvalue", 1, "value");

        digester.addCallMethod(prefix + "search-engine/index/crawler/renderparameter", "addRenderParameter", 2);
        digester.addCallParam(prefix + "search-engine/index/crawler/renderparameter", 0, "name");
        digester.addCallParam(prefix + "search-engine/index/crawler/renderparameter", 1, "value");
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.