package it.unibz.instasearch.indexing;
import java.util.Locale;
import org.apache.lucene.index.Term;
/**
* Document fields for indexing and searching
*/
public enum Field
{
EXT("Extension"), PROJ("Project"), WS("Working Set"),
CONTENTS, FILE, NAME, JAR, DIR, MODIFIED("Modified");
private String title;
private Field() {
}
private Field(String title) {
this.title = title;
}
/**
* @return the title
*/
public String getTitle() {
if( title == null )
return name();
return title;
}
/**
* Create a term of this field
* @param text
* @return Term
*/
public Term createTerm(String text) {
return new Term(name().toLowerCase(Locale.ENGLISH), text);
}
public static Field fromTerm(Term term)
{
return getByName(term.field());
}
/**
*
* @param fieldName (case insensitive)
* @return Field or null if no such field exists
*/
public static Field getByName(String fieldName)
{
try {
return Field.valueOf(fieldName.toUpperCase());
} catch(Exception e) {
return null;
}
}
public String toString() {
return name().toLowerCase(Locale.ENGLISH);
}
}