package ecologylab.serialization;
import java.util.LinkedList;
import java.util.List;
import javax.swing.event.ListSelectionEvent;
import ecologylab.generic.ItemIndexPredicate;
import ecologylab.generic.MultiIndexer;
public class ClassDescriptorIndexer extends MultiIndexer<ClassDescriptor<?>> {
final class byTagName implements ItemIndexPredicate<ClassDescriptor<?>>
{
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "tagname";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Auto-generated method stub
return item.getTagName();
}
}
final class byClassSimpleName implements ItemIndexPredicate<ClassDescriptor<?>>
{
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "javaclasssimplename";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Auto-generated method stub
return item.getDescribedClassSimpleName();
}
}
final class byClassName implements ItemIndexPredicate<ClassDescriptor<?>>
{
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "javaclassname";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Auto-generated method stub
return null;
}
}
final class byTLVId implements ItemIndexPredicate<ClassDescriptor<?>>
{
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "tlvid";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Auto-generated method stub
return Integer.toString(item.getTagName().hashCode());
}
}
final class bySimplName implements ItemIndexPredicate<ClassDescriptor<?>> {
public bySimplName(){}
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "simplname";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Auto-generated method stub
return item.getClassSimpleName();
}
}
final class byObjectiveCName implements ItemIndexPredicate<ClassDescriptor<?>>
{
public byObjectiveCName(){}
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "objc";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Autofgenerated method stub
return item.getObjectiveCTypeName();
}
}
final class byBibtexType implements ItemIndexPredicate<ClassDescriptor<?>>
{
@Override
public String GetIndexIdentifier() {
// TODO Auto-generated method stub
return "bibtextype";
}
@Override
public String ObtainIndex(ClassDescriptor<?> item) {
// TODO Auto-generated method stub
return item.getBibtexType();
}
}
public List<ItemIndexPredicate<ClassDescriptor<?>>> getIndexPredicates() {
List<ItemIndexPredicate<ClassDescriptor<?>>> ourList = new LinkedList<ItemIndexPredicate<ClassDescriptor<?>>>();
ourList.add(new byObjectiveCName());
ourList.add(new bySimplName());
ourList.add(new byBibtexType());
ourList.add(new byClassName());
ourList.add(new byClassSimpleName());
ourList.add(new byTLVId());
ourList.add(new byTagName());
//TODO: OH SHIT. MULTI INDEXING ... OTHER TAGS. MAKE INDEX RETURN LIST? :(
return ourList;
}
}