/*
* 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;
/**
* Information about special pages.
*/
public class SpecialPage implements Comparable<SpecialPage> {
/**
* Special page name.
*/
private final String name;
/**
* List of special page aliases.
*/
private final List<String> aliases;
public final static String ABUSE_FILTER = "AbuseFilter";
public final static String ABUSE_LOG = "AbuseLog";
public final static String ACTIVE_USERS = "Activeusers";
public final static String ALL_MESSAGES = "Allmessages";
public final static String ALL_MY_UPLOADS = "AllMyUploads";
public final static String ALL_PAGES = "Allpages";
public final static String ANCIENT_PAGES = "Ancientpages";
public final static String API_FEATURE_USAGE = "ApiFeatureUsage";
public final static String API_HELP = "ApiHelp";
public final static String API_SANDBOX = "ApiSandbox";
public final static String BANNER_LOADER = "BannerLoader";
public final static String BANNER_RANDOM = "BannerRandom";
public final static String BETA_FEATURES = "BetaFeatures";
public final static String BLANK_PAGE = "Blankpage";
public final static String BLOCK = "Block";
public final static String BLOCK_LIST = "BlockList";
public final static String BOOK = "Book";
public final static String BOOKSOURCES = "Booksources";
public final static String BOT_PASSWORDS = "BotPasswords";
public final static String BROKEN_REDIRECTS = "BrokenRedirects";
public final static String CAPTCHA = "Captcha";
public final static String CATEGORIES = "Categories";
public final static String CATEGORY_TREE = "CategoryTree";
public final static String CENTRAL_AUTH = "CentralAuth";
public final static String CENTRAL_AUTO_LOGIN = "CentralAutoLogin";
public final static String CENTRAL_LOGIN = "CentralLogin";
public final static String CHANGE_CONTENT_MODEL = "ChangeContentModel";
public final static String CHANGE_CREDENTIALS = "ChangeCredentials";
public final static String CHANGE_EMAIL = "ChangeEmail";
public final static String CHANGE_PASSWORD = "ChangePassword";
public final static String CHECK_USER = "CheckUser";
public final static String CHECK_USER_LOG = "CheckUserLog";
public final static String CITE_THIS_PAGE = "CiteThisPage";
public final static String CN_REPORTER = "CNReporter";
public final static String COMPARE_PAGES = "ComparePages";
public final static String CONFIRM_EMAIL = "Confirmemail";
public final static String CONTENT_TRANSLATION = "ContentTranslation";
public final static String CONTENT_TRANSLATION_STATS = "ContentTranslationStats";
public final static String CONTRIBUTIONS = "Contributions";
public final static String CREATE_ACCOUNT = "CreateAccount";
public final static String CREATE_MASS_MESSAGE_LIST = "CreateMassMessageList";
public final static String DEAD_END_PAGES = "Deadendpages";
public final static String DELETED_CONTRIBUTIONS = "DeletedContributions";
public final static String DIFF = "Diff";
public final static String DISAMBIGUATION_PAGE_LINKS = "DisambiguationPageLinks";
public final static String DISAMBIGUATION_PAGES = "DisambiguationPages";
public final static String DISPLAY_NOTIFICATIONS_CONFIGURATION = "DisplayNotificationsConfiguration";
public final static String DOUBLE_REDIRECTS = "DoubleRedirects";
public final static String EDIT_MASS_MESSAGE_LIST = "EditMassMessageList";
public final static String EDIT_TAGS = "EditTags";
public final static String EDIT_WATCHLIST = "EditWatchlist";
public final static String EMAIL_USER = "Emailuser";
public final static String ENABLE_FLOW = "EnableFlow";
public final static String EXPAND_TEMPLATES = "ExpandTemplates";
public final static String EXPORT = "Export";
public final static String FEED_ITEM = "FeedItem";
public final static String FEWEST_REVISIONS = "Fewestrevisions";
public final static String FILE_DUPLICATE_SEARCH = "FileDuplicateSearch";
public final static String FILE_PATH = "Filepath";
public final static String FLOW = "Flow";
public final static String GADGET_USAGE = "GadgetUsage";
public final static String GADGETS = "Gadgets";
public final static String GLOBAL_BLOCK = "GlobalBlock";
public final static String GLOBAL_BLOCK_LIST = "GlobalBlockList";
public final static String GLOBAL_BLOCK_STATUS = "GlobalBlockStatus";
public final static String GLOBAL_GROUP_MEMBERSHIP = "GlobalGroupMembership";
public final static String GLOBAL_GROUP_PERMISSIONS = "GlobalGroupPermissions";
public final static String GLOBAL_RENAME_PROGRESS = "GlobalRenameProgress";
public final static String GLOBAL_RENAME_QUEUE = "GlobalRenameQueue";
public final static String GLOBAL_RENAME_REQUEST = "GlobalRenameRequest";
public final static String GLOBAL_RENAME_USER = "GlobalRenameUser";
public final static String GLOBAL_USAGE = "GlobalUsage";
public final static String GLOBAL_USER_MERGE = "GlobalUserMerge";
public final static String GLOBAL_USERS = "GlobalUsers";
public final static String GLOBALLY_WANTED_FILES = "GloballyWantedFiles";
public final static String GRAPH_SANDBOX = "GraphSandbox";
public final static String HIDE_BANNERS = "HideBanners";
public final static String HIEROGLYPHS = "Hieroglyphs";
public final static String HISTORY = "History";
public final static String IMPORT = "Import";
public final static String INTERWIKI = "Interwiki";
public final static String INVALIDATE_EMAIL = "Invalidateemail";
public final static String LINK_ACCOUNTS = "LinkAccounts";
public final static String LINK_SEARCH = "LinkSearch";
public final static String LIST_ADMINS = "Listadmins";
public final static String LIST_BOTS = "Listbots";
public final static String LIST_DUPLICATED_FILES = "ListDuplicatedFiles";
public final static String LIST_FILES = "Listfiles";
public final static String LIST_GRANTS = "Listgrants";
public final static String LIST_GROUP_RIGHTS = "Listgrouprights";
public final static String LIST_REDIRECTS = "Listredirects";
public final static String LIST_USERS = "Listusers";
public final static String LOCK_DB = "Lockdb";
public final static String LOG = "Log";
public final static String LONELY_PAGES = "Lonelypages";
public final static String LONG_PAGES = "Longpages";
public final static String MASS_MESSAGE = "MassMessage";
public final static String MATH_SHOW_IMAGE = "MathShowImage";
public final static String MATH_STATUS = "MathStatus";
public final static String MEDIA_STATISTICS = "MediaStatistics";
public final static String MERGE_ACCOUNT = "MergeAccount";
public final static String MERGE_HISTORY = "MergeHistory";
public final static String MIME_SEARCH = "MIMEsearch";
public final static String MOBILE_CITE = "MobileCite";
public final static String MOBILE_DIFF = "MobileDiff";
public final static String MOBILE_EDITOR = "MobileEditor";
public final static String MOBILE_LANGUAGES = "MobileLanguages";
public final static String MOBILE_MENU = "MobileMenu";
public final static String MOBILE_OPTIONS = "MobileOptions";
public final static String MOST_CATEGORIES = "Mostcategories";
public final static String MOST_GLOBALLY_LINKED_FILES = "MostGloballyLinkedFiles";
public final static String MOST_IMAGES = "Mostimages";
public final static String MOST_INTERWIKIS = "Mostinterwikis";
public final static String MOST_LINKED = "Mostlinked";
public final static String MOST_LINKED_CATEGORIES = "Mostlinkedcategories";
public final static String MOST_LINKED_TEMPLATES = "Mostlinkedtemplates";
public final static String MOST_REVISIONS = "Mostrevisions";
public final static String MOVE_PAGE = "Movepage";
public final static String MULTI_LOCK = "MultiLock";
public final static String MY_CONTRIBUTIONS = "Mycontributions";
public final static String MY_LANGUAGE = "Mylanguage";
public final static String MY_PAGE = "Mypage";
public final static String MY_TALK = "Mytalk";
public final static String MY_UPLOADS = "Myuploads";
public final static String NEARBY = "Nearby";
public final static String NEW_IMAGES = "Newimages";
public final static String NEW_PAGES = "Newpages";
public final static String NOTIFICATIONS = "Notifications";
public final static String NOTIFICATIONS_MARK_READ = "NotificationsMarkRead";
public final static String NUKE = "Nuke";
public final static String OATH = "OATH";
public final static String OAUTH = "OAuth";
public final static String OAUTH_LIST_CONSUMERS = "OAuthListConsumers";
public final static String OAUTH_MANAGE_MY_GRANTS = "OAuthManageMyGrants";
public final static String ORPHANED_TIMED_TEXT = "OrphanedTimedText";
public final static String PAGES_WITH_BADGES = "PagesWithBadges";
public final static String PAGES_WITH_PROP = "PagesWithProp";
public final static String PASSWORD_RESET = "PasswordReset";
public final static String PERMANENT_LINK = "PermanentLink";
public final static String PREFERENCES = "Preferences";
public final static String PREFIX_INDEX = "Prefixindex";
public final static String PROTECTED_PAGES = "Protectedpages";
public final static String PROTECTED_TITLES = "Protectedtitles";
public final static String RANDOM_IN_CATEGORY = "RandomInCategory";
public final static String RANDOM_PAGE = "Randompage";
public final static String RANDOM_REDIRECT = "Randomredirect";
public final static String RANDOM_ROOT_PAGE = "Randomrootpage";
public final static String RECENT_CHANGES = "Recentchanges";
public final static String RECENT_CHANGES_LINKED = "Recentchangeslinked";
public final static String RECORD_IMPRESSION = "RecordImpression";
public final static String REDIRECT = "Redirect";
public final static String REMOVE_CREDENTIALS = "RemoveCredentials";
public final static String REMOVE_GLOBAL_BLOCK = "RemoveGlobalBlock";
public final static String RENAME_USER = "Renameuser";
public final static String RESET_TOKENS = "ResetTokens";
public final static String REVISION_DELETE = "Revisiondelete";
public final static String RUN_JOBS = "RunJobs";
public final static String SEARCH = "Search";
public final static String SECURE_POLL = "SecurePoll";
public final static String SHORT_PAGES = "Shortpages";
public final static String SITE_MATRIX = "SiteMatrix";
public final static String SPECIAL_PAGES = "Specialpages";
public final static String STASTISTICS = "Statistics";
public final static String TAGS = "Tags";
public final static String TEMPLATE_SANDBOX = "TemplateSandbox";
public final static String THANKS = "Thanks";
public final static String TIMED_MEDIA_HANDLER = "TimedMediaHandler";
public final static String TRACKING_CATEGORIES = "TrackingCategories";
public final static String UNBLOCK = "Unblock";
public final static String UNCATEGORIZED_CATEGORIES = "Uncategorizedcategories";
public final static String UNCATEGORIZED_IMAGES = "Uncategorizedimages";
public final static String UNCATEGORIZED_PAGES = "Uncategorizedpages";
public final static String UNCATEGORIZED_TEMPLATES = "Uncategorizedtemplates";
public final static String UNCONNECTED_PAGES = "UnconnectedPages";
public final static String UNDELETE = "Undelete";
public final static String UNLINK_ACCOUNTS = "UnlinkAccounts";
public final static String UNLOCK_DB = "Unlockdb";
public final static String UNUSED_CATEGORIES = "Unusedcategories";
public final static String UNUSED_IMAGES = "Unusedimages";
public final static String UNUSED_TEMPLATES = "Unusedtemplates";
public final static String UNWATCHED_PAGES = "Unwatchedpages";
public final static String UPLOAD = "Upload";
public final static String UPLOAD_STASH = "UploadStash";
public final static String UPLOADS = "Uploads";
public final static String URL_REDIRECTOR = "UrlRedirector";
public final static String URL_SHORTENER = "UrlShortener";
public final static String USER_LOGIN = "Userlogin";
public final static String USER_LOGOUT = "Userlogout";
public final static String USER_MERGE = "UserMerge";
public final static String USER_RIGHTS = "Userrights";
public final static String USERS_WHO_WILL_BE_RENAMED = "UsersWhoWillBeRenamed";
public final static String VERSION = "Version";
public final static String VIPS_TEST = "VipsTest";
public final static String WANTED_CATEGORIES = "Wantedcategories";
public final static String WANTED_FILES = "Wantedfiles";
public final static String WANTED_PAGES = "Wantedpages";
public final static String WANTED_TEMPLATES = "Wantedtemplates";
public final static String WATCHLIST = "Watchlist";
public final static String WHAT_LINKS_HERE = "Whatlinkshere";
public final static String WIKI_SETS = "WikiSets";
public final static String WITHOUT_INTERWIKI = "Withoutinterwiki";
public final static String ZERO_RATED_MOBILE_ACCESS = "ZeroRatedMobileAccess";
/**
* @param name Special page name.
* @param aliases Special page aliases.
*/
public SpecialPage(String name, List<String> aliases) {
this.name = name;
this.aliases = aliases;
}
/**
* @return Special page name.
*/
public String getName() {
return name;
}
/**
* @return Special page aliases.
*/
public List<String> getAliases() {
return aliases;
}
/**
* @param text Text to check.
* @return Flag indicating if the text is a possible alias.
*/
public boolean isPossibleAlias(String text) {
if (text == null) {
return false;
}
for (String alias : aliases) {
if (Page.areSameTitle(alias, text)) {
return true;
}
}
return false;
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(SpecialPage sp) {
int compare;
// Name
compare = name.compareTo(sp.name);
if (compare != 0) {
return compare;
}
return compare;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if ((o == null) || (o.getClass() != getClass())) {
return false;
}
SpecialPage sp = (SpecialPage) o;
boolean equals = true;
equals &= name.equals(sp.name);
return equals;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return name.hashCode();
}
}