package org.limewire.core.api;
import java.util.Arrays;
import java.util.List;
import org.limewire.i18n.I18nMarker;
/**
* Represents a category for the various file types represented in the application.
*/
public enum Category {
AUDIO(I18nMarker.marktr("Audio"), I18nMarker.marktr("Audio"), "audio"),
VIDEO(I18nMarker.marktr("Video"), I18nMarker.marktr("Videos"), "video"),
IMAGE(I18nMarker.marktr("Image"), I18nMarker.marktr("Images"), "image"),
DOCUMENT(I18nMarker.marktr("Document"), I18nMarker.marktr("Documents"), "document"),
PROGRAM(I18nMarker.marktr("Program"), I18nMarker.marktr("Programs"), "application"),
OTHER(I18nMarker.marktr("Other"), I18nMarker.marktr("Other"), "other"),
TORRENT(I18nMarker.marktr("Torrent"), I18nMarker.marktr("Torrents"), "torrent"),
;
private final String plural;
private final String singular;
private final String schemaName;
Category(String singular, String plural, String schemaName) {
this.singular = singular;
this.plural = plural;
this.schemaName = schemaName;
}
/**
* Returns the name of the category when referring to a single item.
*/
public String getSingularName() {
return singular;
}
/**
* Returns the name of the category when referring to many items.
*/
public String getPluralName() {
return plural;
}
/**
* Returns the schema associated with this category.
* This is associated with XML, and is better of unused unless
* absolutely necessary.
*/
public String getSchemaName() {
return schemaName;
}
@Override
public String toString() {
return plural;
}
/**
* Returns a List with the categories in the order we would like them to be displayed.
*/
public static List<Category> getCategoriesInOrder() {
return Arrays.asList(AUDIO, VIDEO, IMAGE, DOCUMENT, PROGRAM, OTHER);
}
}