/**
* License Agreement for OpenSearchServer
*
* Copyright (C) 2010-2015 Emmanuel Keller / Jaeksoft
*
* http://www.open-search-server.com
*
* This file is part of OpenSearchServer.
*
* OpenSearchServer is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenSearchServer 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenSearchServer.
* If not, see <http://www.gnu.org/licenses/>.
**/
package com.jaeksoft.searchlib.analysis;
import org.apache.commons.codec.language.bm.RuleType;
import com.jaeksoft.searchlib.util.ExtensibleEnum;
import com.jaeksoft.searchlib.util.ExtensibleEnumItem;
public class ClassPropertyEnum extends ExtensibleEnumItem<ClassPropertyEnum> {
public final static ExtensibleEnum<ClassPropertyEnum> ENUM = new ExtensibleEnum<ClassPropertyEnum>();
public final static ClassPropertyEnum SCOPE = new ClassPropertyEnum(false, "scope", "Scope",
"The scope of the class");
public final static ClassPropertyEnum CLASS = new ClassPropertyEnum(false, "class", "Class",
"The name of the class");
public final static ClassPropertyEnum FILE_LIST = new ClassPropertyEnum(true, "file", "List",
"The name of the list");
public final static ClassPropertyEnum PREFIX_FILE_LIST = new ClassPropertyEnum(true, "prefixList", "Prefix list",
"The name of the prefix list");
public final static ClassPropertyEnum SUFFIX_FILE_LIST = new ClassPropertyEnum(true, "suffixList", "Suffix list",
"The name of the suffix list");
public final static ClassPropertyEnum SIZE_LIMIT = new ClassPropertyEnum(true, "sizeLimit", "Size Limit",
"The Size Limit of the file to be Parsed");
public final static ClassPropertyEnum DEFAULT_CHARSET = new ClassPropertyEnum(true, "defaultCharset",
"Default Charset", "The charset to use if not charset is found");
public final static ClassPropertyEnum PARSER_NAME = new ClassPropertyEnum(false, "name", "name",
"The name of the parser ");
public final static ClassPropertyEnum PDFCRACK_COMMANDLINE = new ClassPropertyEnum(true, "pdfCrackCommandLine",
"PDFCrack command line", "The command line used to execute PDFCrack.");
public final static ClassPropertyEnum GHOSTSCRIPT_BINARYPATH = new ClassPropertyEnum(true, "ghostscriptBinaryPath",
"Ghostscript binary path", "The path of the Ghostscript binary file.");
public final static ClassPropertyEnum HTML_PARSER = new ClassPropertyEnum(true, "htmlParser", "HTML parser",
"The HTML parser to use");
public final static ClassPropertyEnum PARSER_FAIL_OVER_NAME = new ClassPropertyEnum(false, "fileOver",
"Fail over parser", "The name of the parser used as fail over");
public static ClassPropertyEnum ADDITIONAL_ALLOWED_CHARS = new ClassPropertyEnum(true, "charArrayToken",
"Additional characters", "List of additional characters allowed in token");
public static ClassPropertyEnum CUSTOM_TOKEN_CHARS = new ClassPropertyEnum(true, "customCharToken",
"Token characters", "List of characters which cause token to be generated");
public final static ClassPropertyEnum MIN_GRAM = new ClassPropertyEnum(true, "min_gram", "Min gram size",
"The smallest n-gram to generate");
public final static ClassPropertyEnum MAX_GRAM = new ClassPropertyEnum(true, "max_gram", "Max gram size",
"The largest n-gram to generate");
public final static ClassPropertyEnum SIDE = new ClassPropertyEnum(true, "side", "Edge side",
"Specifies which side of the input the n-gram should be generated from");
public final static ClassPropertyEnum TOKEN_SEPARATOR = new ClassPropertyEnum(true, "token_separator",
"Token separator", "The string to use when joining adjacent tokens");
public final static ClassPropertyEnum TOKEN_TYPE = new ClassPropertyEnum(true, "token_type", "Token type",
"The type of the token (shingle, synonym, ...)");
public final static ClassPropertyEnum EXPAND = new ClassPropertyEnum(true, "expand", "Expand", "");
public final static ClassPropertyEnum IGNORE_CASE = new ClassPropertyEnum(true, "ignore_case", "Ignore case", "");
public final static ClassPropertyEnum MAX_SHINGLE_SIZE = new ClassPropertyEnum(true, "max_shingle_size",
"Max shingle size", "Set the max shingle size (default: 2)");
public final static ClassPropertyEnum MIN_SHINGLE_SIZE = new ClassPropertyEnum(true, "min_shingle_size",
"Min shingle size", "Set the min shingle size (default: 1)");
public final static ClassPropertyEnum FAULT_TOLERANT = new ClassPropertyEnum(true, "fault_tolerant",
"Fault tolerant", "Decide wether or not the process will stops on errors");
public static final ClassPropertyEnum DOMAIN_EXTRACTION = new ClassPropertyEnum(true, "domain_extraction",
"Domain extraction", "Select a domain extraction strategy");
public static final ClassPropertyEnum CODEC = new ClassPropertyEnum(true, "codec", "Codec algorithm",
"Select a encoder/decoder algorithm");
public static final ClassPropertyEnum SALT = new ClassPropertyEnum(true, "salt", "SALT",
"The salt string uses for encryption");
public static final ClassPropertyEnum MAX_PHONEMES = new ClassPropertyEnum(true, "maxPhonenes",
"Maximum number of phonemes", "The maximum number of phonemes that will be handled");
public static final ClassPropertyEnum BEIDER_MORSE_RULE = new ClassPropertyEnum(true, "beiderMorseRule",
"Type of rules", "The type of rules");
public static final String[] BEIDER_MORSE_RULES = { RuleType.APPROX.name(), RuleType.EXACT.name() };
public static ClassPropertyEnum REMOVE_DUPLICATE_LETTERS = new ClassPropertyEnum(true, "removeDuplicateLetters",
"Duplicate letters", "Detect and remove consecutive duplicate letters");
public static ClassPropertyEnum ALLOWED_TAGS = new ClassPropertyEnum(true, "allowedTags", "Allowed tags",
"Allowed tags separated by spaces");
public static ClassPropertyEnum INPUT_NUMBER_FORMAT = new ClassPropertyEnum(true, "inputNumberFormat",
"Input Number format", "Format number using java decimal format, for example, \"#,##0.00;(#,##0.00)\".");
public static ClassPropertyEnum OUTPUT_NUMBER_FORMAT = new ClassPropertyEnum(true, "numberFormat",
"Output Number format", "Format number using java decimal format, for example, \"#,##0.00;(#,##0.00)\".");
public static ClassPropertyEnum INPUT_DECIMAL_SEPARATOR = new ClassPropertyEnum(true, "inputDecimalSeparator",
"Input decimal separator", "Character used as decimal separator");
public static ClassPropertyEnum OUTPUT_DECIMAL_SEPARATOR = new ClassPropertyEnum(true, "outputDecimalSeparator",
"Output decimal separator", "Character used as decimal separator");
public static ClassPropertyEnum INPUT_GROUP_SEPARATOR = new ClassPropertyEnum(true, "inputGroupSeparator",
"Input grouping separator", "Character used as grouping separator");
public static ClassPropertyEnum OUTPUT_GROUP_SEPARATOR = new ClassPropertyEnum(true, "outputGroupSeparator",
"Output grouping separator", "Character used as grouping separator");
public static ClassPropertyEnum JSON_PATH = new ClassPropertyEnum(true, "jsonPath", "Json Path",
"Extract data from a JSON structure using Json Path syntax");
public static ClassPropertyEnum XPATH = new ClassPropertyEnum(true, "xPath", "XPath",
"Extract data from a XPATH structure using XPath syntax");
public static ClassPropertyEnum REMOVE_DUPLICATE_DIGITS = new ClassPropertyEnum(true, "removeDuplicateDigits",
"Duplicate digits", "Detect and remove consecutive duplicate digits");
public static ClassPropertyEnum REMOVE_DUPLICATE_WHITESPACES = new ClassPropertyEnum(true,
"removeDuplicateWhiteSpaces", "Duplicate spaces", "Detect and remove consecutive duplicate white spaces");
public static ClassPropertyEnum REMOVE_MATCHING_FLAGS = new ClassPropertyEnum(true, "removeMatchingFlags",
"Remove matching flags", "Remove tokens having the same flags than deleted one");
public final static ClassPropertyEnum URL_FRAGMENT = new ClassPropertyEnum(true, "url_fragment", "URL Fragment",
"The Option to remove or keep the URL Fragment");
public final static ClassPropertyEnum REGULAR_EXPRESSION = new ClassPropertyEnum(true, "regular_expression",
"Pattern", "The regular expression pattern");
public final static ClassPropertyEnum REGULAR_EXPRESSION_REPLACEMENT = new ClassPropertyEnum(true,
"regular_expression_replacement", "Replacement", "The regular expression replacement");
public final static ClassPropertyEnum H1_BOOST = new ClassPropertyEnum(true, "h1_boost", "H1 Boost",
"Boost for H1 Tag in Html Content");
public final static ClassPropertyEnum H2_BOOST = new ClassPropertyEnum(true, "h2_boost", "H2 Boost",
"Boost for H2 Tag in Html Content");
public final static ClassPropertyEnum H3_BOOST = new ClassPropertyEnum(true, "h3_boost", "H3 Boost",
"Boost for H3 Tag in Html Content");
public final static ClassPropertyEnum H4_BOOST = new ClassPropertyEnum(true, "h4_boost", "H4 Boost",
"Boost for H4 Tag in Html Content");
public final static ClassPropertyEnum H5_BOOST = new ClassPropertyEnum(true, "h5_boost", "H5 Boost",
"Boost for H5 Tag in Html Content");
public final static ClassPropertyEnum H6_BOOST = new ClassPropertyEnum(true, "h6_boost", "H6 Boost",
"Boost for H6 Tag in Html Content");
public final static ClassPropertyEnum TITLE_BOOST = new ClassPropertyEnum(true, "title_boost", "Title Boost",
"Boost for Title Tag in Html Content");
public final static String[] BOOLEAN_LIST = { Boolean.TRUE.toString(), Boolean.FALSE.toString() };
public final static String[] SCHEDULER_ACTION_LIST = { "Wait for completion", "Exit if running", "Start",
"Start and wait for completion" };
public final static ClassPropertyEnum OCR_PDF_METHOD = new ClassPropertyEnum(true, "ocr_pdf_method",
"OCR method for PDF", "Select an OCR stragegy for images in PDF");
public final static String[] OCR_PDF_METHODS = { "Embedded images", "Full page" };
public final static String[] KEEP_REMOVE_LIST = { "keep", "remove" };
public final static String[] YOUTUBE_DATA_LIST = { "title", "description", "full (json)" };
public final static String[] VIMEO_DATA_LIST = { "title", "description", "full (json)" };
public static String[] DAILYMOTION_DATA_LIST = { "title", "full (json)" };
public final static ClassPropertyEnum INDEX_LIST = new ClassPropertyEnum(true, "index", "Index", "Select an index");
public final static ClassPropertyEnum SEARCH_REQUEST = new ClassPropertyEnum(true, "request", "Search Request",
"The search request");
public final static ClassPropertyEnum REQUESTED_FIELD = new ClassPropertyEnum(true, "requestedField",
"Requested field", "The field which contains the searched term");
public final static ClassPropertyEnum RETURN_FIELD = new ClassPropertyEnum(true, "returnField", "Return field",
"The field(s) which contains the returned values");
public static ClassPropertyEnum VIMEO_DATA = new ClassPropertyEnum(true, "vimeo_data", "Vimeo Field",
"The vimeo API data");
public static final ClassPropertyEnum YOUTUBE_DATA = new ClassPropertyEnum(true, "youtube_data", "Youtube Field",
"The youtube API data");
public static final ClassPropertyEnum DAILYMOTION_DATA = new ClassPropertyEnum(true, "dailymotion_data",
"Dailymotion Field", "The Dailymotion API data");
public static final ClassPropertyEnum DEGREES_RADIANS_CONVERSION = new ClassPropertyEnum(true,
"degrees_radians_conversion", "Conversion direction", "The direction of the conversion");
public final static ClassPropertyEnum DEFAULT_VALUE = new ClassPropertyEnum(true, "defaultValue", "Default Value",
"The default value to use if no value is found");
public final static ClassPropertyEnum DEFAULT_ARTICLES = new ClassPropertyEnum(true, "defaultArticles", "Articles",
"The articles to identify (separated by spaces)");
public static String[] DEGREES_RADIANS_CONVERSION_LIST = { "Degrees to Radians", "Radians to Degrees",
"Check degrees", "Check radians" };
public static ClassPropertyEnum IGNORE_META_NOINDEX = new ClassPropertyEnum(true, "ignoreMetaNoIndex",
"Ignore meta noindex", "Ignore the meta noindex tag in HTML header");
public static ClassPropertyEnum IGNORE_META_NOFOLLOW = new ClassPropertyEnum(true, "ignoreMetaNoFollow",
"Ignore meta nofollow", "Ignore the meta nofollow tag in HTML header");
public static ClassPropertyEnum IGNORE_LINK_NOFOLLOW = new ClassPropertyEnum(true, "ignoreLinkNoFollow",
"Ignore link nofollow", "Ignore the REL nofollow attribute in LINK tags");
public static ClassPropertyEnum IGNORE_UNTITLED_DOCUMENTS = new ClassPropertyEnum(true, "ignoreUntitledDocuments",
"Ignore untitled documents", "Ignore documents which don't have title");
public static ClassPropertyEnum IGNORE_NON_CANONICAL = new ClassPropertyEnum(true, "ignoreNonCanonical",
"Ignore non canonical pages", "Ignore documents which have a canonical link reference");
public static ClassPropertyEnum XPATH_DOCUMENT_SELECTOR = new ClassPropertyEnum(true, "xPathDocumentSelector",
"XPATH request for documents", "XPATH request to locate a document to index");
public final static String[] RSS_METHODS = { "One document for all items", "One document per item" };
public static final ClassPropertyEnum RSS_METHOD = new ClassPropertyEnum(true, "rssMethod",
"The way RSS feed are indexed",
"One document in the index per item in the RSS feed, or one document for all items");
public static final ClassPropertyEnum HUNSPELL_DICT_PATH = new ClassPropertyEnum(true, "hunspellDictPath",
"Hunspell dictionary path",
"The path to the files containing the dictionary, without the extension (.aff, .dic)");
public static final ClassPropertyEnum HUNSPELL_METHOD = new ClassPropertyEnum(true, "hunspellMethod",
"Hunspell method", "The linking method. Use BridJ with external Hunspell library");
public static final ClassPropertyEnum MIN_LENGTH = new ClassPropertyEnum(true, "minLength", "Minimum length",
"The minimum length");
public static final ClassPropertyEnum XPATH_EXCLUSION = new ClassPropertyEnum(true, "xPathExclusion",
"XPATH Exclusion", "Exclude matching node from indexation");
public static final ClassPropertyEnum PROPER_NOUN_TYPE = new ClassPropertyEnum(true, "propernoun_type",
"Proper noun type", "The type of proper noun generation");
private boolean isUser;
private String label;
private String info;
private String xmlAttributeName;
protected ClassPropertyEnum(boolean isUser, String xmlAttributeName, String label, String info) {
super(ENUM, xmlAttributeName);
this.isUser = isUser;
this.xmlAttributeName = xmlAttributeName;
this.label = label;
this.info = info;
}
/**
* @return a string used for XML attribute storage
*/
public String getAttribute() {
return xmlAttributeName;
}
/**
* @return true if the properties is a user property
*/
public boolean isUser() {
return isUser;
}
/**
*
* @return the literal label of the property
*/
public String getLabel() {
return label;
}
/**
* @return the information
*/
public String getInfo() {
return info;
}
public static ClassPropertyEnum valueOf(String enumValue) {
return ClassPropertyEnum.ENUM.getValue(enumValue);
}
}