public int compareTo(Entry other){
  if (address < other.address) {
    return -1;
  }
 else   if (address > other.address) {
    return 1;
  }
  boolean thisIsStart=isStart();
  boolean otherIsStart=other.isStart();
  if (thisIsStart != otherIsStart) {
    return thisIsStart ? 1 : -1;
  }
  return spec.compareTo(other.spec);
}

public int compareTo ( Entry other ) { if ( address < other . address ) { return - 1 ; } else if ( address > other . address ) { return 1 ; } boolean thisIsStart = isStart ( ) ; boolean otherIsStart = other . isStart ( ) ; if ( thisIsStart != otherIsStart ) { return thisIsStart ? 1 : - 1 ; } return spec . compareTo ( other . spec ) ; }
compares by ( in priority order ) address , end then start disposition ( variants of end are all consistered equivalent ) , and spec .
