/** * */ package iamrescue.util.comparators; import iamrescue.belief.IAMWorldModel; import iamrescue.belief.provenance.IProvenanceInformation; import java.util.Comparator; import rescuecore2.standard.entities.StandardEntity; import rescuecore2.standard.entities.StandardEntityURN; import rescuecore2.standard.entities.StandardPropertyURN; /** * @author Simon */ public class RoadComparator implements Comparator<StandardEntity> { private IAMWorldModel model; public RoadComparator(IAMWorldModel model) { this.model = model; } public int compare(StandardEntity se1, StandardEntity se2) { IProvenanceInformation time1 = model.getProvenance(se1.getID(), StandardPropertyURN.BLOCKADES); IProvenanceInformation time2 = model.getProvenance(se2.getID(), StandardPropertyURN.BLOCKADES); if (time1 == null || time1.getLastDefined() == null) { if (time2 == null || time2.getLastDefined() == null) { return Double.compare(se1.getID().getValue(), se2.getID() .getValue()); } else { return -1; } } else { if (time2 == null || time2.getLastDefined() == null) { return 1; } else { int intT1 = time1.getLastDefined().getTimeStep(); int intT2 = time2.getLastDefined().getTimeStep(); if (intT1 == intT2) { return Double.compare(se1.getID().getValue(), se2.getID() .getValue()); } else { return Double.compare(intT1, intT2); } } } } }