package org.codelibs.riverweb.config; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.codelibs.fess.crawler.entity.ResponseData; import org.codelibs.riverweb.entity.ScrapingRule; public class RiverConfig { private String index; private String type; private boolean overwrite; private boolean incremental; private Map<String, Object> scriptSettings; private final List<ScrapingRule> scrapingRuleList = new ArrayList<>(); public String getIndex() { return index; } public void setIndex(final String index) { this.index = index; } public String getType() { return type; } public void setType(final String type) { this.type = type; } public boolean isOverwrite() { return overwrite; } public void setOverwrite(final boolean overwrite) { this.overwrite = overwrite; } public boolean isIncremental() { return incremental; } public void setIncremental(final boolean incremental) { this.incremental = incremental; } public void addScrapingRule(final Map<String, Object> settingMap, final Map<String, Object> patternMap, final Map<String, Map<String, Object>> scrapingRuleMap) { scrapingRuleList.add(new ScrapingRule(settingMap, patternMap, scrapingRuleMap)); } public ScrapingRule getScrapingRule(final ResponseData responseData) { for (final ScrapingRule scrapingRule : scrapingRuleList) { if (scrapingRule.matches(responseData)) { return scrapingRule; } } return null; } public Map<String, Object> getScriptSettings() { return scriptSettings; } public void setScriptSettings(final Map<String, Object> scriptSettings) { this.scriptSettings = scriptSettings; } }