}
@Override
public int compare(Object o1, Object o2)
{
Attributable a1 = Adaptor.adapt(Attributable.class, o1);
Attributable a2 = Adaptor.adapt(Attributable.class, o2);
if (a1 == null && a2 == null)
return 0;
else if (a1 == null)
return -1;
else if (a2 == null)
return 1;
Object v1 = a1.getAttributes().get(attribute);
Object v2 = a2.getAttributes().get(attribute);
return attribute.getComparator().compare(v1, v2);
}