/*
* 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");
}
}
|