package org.apache.solr.request.compare;
import java.io.Serializable;
import java.util.Comparator;
import org.apache.log4j.Logger;
public class ShardDetailSelectDetailRowCompare implements Comparator<SelectDetailRow>,Serializable{
private static Logger LOG = Logger.getLogger(ShardDetailSelectDetailRowCompare.class);
private static final long serialVersionUID = 1L;
private boolean isdesc=true;
private compareInterface cmpobj=null;
public ShardDetailSelectDetailRowCompare(boolean _isdesc) {
this.isdesc=_isdesc;
this.cmpobj=new CompareColumn();
}
@Override
public int compare(SelectDetailRow o1,
SelectDetailRow o2) {
int cmp = cmpobj.compare(o1, o2);
if(this.isdesc)
{
return cmp;
}
return cmp*-1;
}
public interface compareInterface
{
public int compare(SelectDetailRow o1, SelectDetailRow o2);
}
public class CompareIndex implements compareInterface
{
@Override
public int compare(SelectDetailRow o1, SelectDetailRow o2) {
return UniqTypeNum.compare(o1.docid, o2.docid);
}
}
public class CompareColumn implements compareInterface
{
CompareIndex index=new CompareIndex();
@Override
public int compare(SelectDetailRow o1, SelectDetailRow o2) {
int cmp= UniqTypeNum.compare(o1.getCompareValue(),o2.getCompareValue());
if(cmp==0)
{
cmp=index.compare(o1, o2);
}
return cmp;
}
}
}