/*
* WPCleaner: A tool to help on Wikipedia maintenance tasks.
* Copyright (C) 2013 Nicolas Vervelle
*
* See README.txt file for licensing information.
*/
package org.wikipediacleaner.api.data;
import java.util.List;
import org.wikipediacleaner.api.constants.EnumWikipedia;
/**
* A class for describing a matcher for template.
*/
public abstract class TemplateMatcher {
private final EnumWikipedia wikipedia;
private final String templateName;
private final String explanation;
private final boolean good;
private final boolean helpNeeded;
/**
* @param wikipedia Wikipedia.
* @param templateName Template name.
* @param explanation Explanation.
* @param isGood Is good ?
* @param helpNeeded Is help needed ?
*/
public TemplateMatcher(
EnumWikipedia wikipedia,
String templateName, String explanation,
boolean isGood, boolean helpNeeded) {
this.wikipedia = wikipedia;
this.templateName = (templateName != null) ? Page.getStringUcFirst(templateName) : null;
this.explanation = explanation;
this.good = isGood;
this.helpNeeded = helpNeeded;
}
/**
* @param page Page.
* @param template Template being analyzed.
* @return Link (if any) created by the template for this matcher.
*/
public abstract String linksTo(Page page, PageElementTemplate template);
/**
* @param page Page.
* @param template Template.
* @return List of possible kinds of replacements.
*/
public abstract List<String> getReplacements(Page page, PageElementTemplate template);
/**
* @param page Page.
* @param template Template.
* @param index Replacement index.
* @param text Replacement text.
* @return Full replacement.
*/
public abstract String getReplacement(
Page page, PageElementTemplate template,
int index, String text);
/**
* @return Wikipedia.
*/
public EnumWikipedia getWikipedia() {
return wikipedia;
}
/**
* @return Template name.
*/
public String getTemplateName() {
return templateName;
}
/**
* @return Explanation.
*/
public String getExplanation() {
return explanation;
}
/**
* @return Is good ?
*/
public boolean isGood() {
return good;
}
/**
* @return Is help needed ?
*/
public boolean isHelpNeeded() {
return helpNeeded;
}
}