示例#1
0
 public int compare(DatanodeDescriptor d1, DatanodeDescriptor d2) {
   int ret = 0;
   switch (sortField) {
     case FIELD_LAST_CONTACT:
       ret = (int) (d2.getLastUpdate() - d1.getLastUpdate());
       break;
     case FIELD_CAPACITY:
       long dlong = d1.getCapacity() - d2.getCapacity();
       ret = (dlong < 0) ? -1 : ((dlong > 0) ? 1 : 0);
       break;
     case FIELD_USED:
       dlong = d1.getDfsUsed() - d2.getDfsUsed();
       ret = (dlong < 0) ? -1 : ((dlong > 0) ? 1 : 0);
       break;
     case FIELD_NONDFS_USED:
       dlong = d1.getNonDfsUsed() - d2.getNonDfsUsed();
       ret = (dlong < 0) ? -1 : ((dlong > 0) ? 1 : 0);
       break;
     case FIELD_REMAINING:
       dlong = d1.getRemaining() - d2.getRemaining();
       ret = (dlong < 0) ? -1 : ((dlong > 0) ? 1 : 0);
       break;
     case FIELD_PERCENT_USED:
       double ddbl = ((d1.getDfsUsedPercent()) - (d2.getDfsUsedPercent()));
       ret = (ddbl < 0) ? -1 : ((ddbl > 0) ? 1 : 0);
       break;
     case FIELD_PERCENT_REMAINING:
       ddbl = ((d1.getRemainingPercent()) - (d2.getRemainingPercent()));
       ret = (ddbl < 0) ? -1 : ((ddbl > 0) ? 1 : 0);
       break;
     case FIELD_BLOCKS:
       ret = d1.numBlocks() - d2.numBlocks();
       break;
     case FIELD_NAME:
       ret = d1.getHostName().compareTo(d2.getHostName());
       break;
   }
   return (sortOrder == SORT_ORDER_DSC) ? -ret : ret;
 }