1 18 package org.apache.tools.ant.types.resources.comparators; 19 20 import java.util.Comparator ; 21 22 import org.apache.tools.ant.types.DataType; 23 import org.apache.tools.ant.types.Resource; 24 25 29 public abstract class ResourceComparator extends DataType implements Comparator { 30 31 39 public final int compare(Object foo, Object bar) { 40 dieOnCircularReference(); 41 ResourceComparator c = 42 isReference() ? (ResourceComparator) getCheckedRef() : this; 43 return c.resourceCompare((Resource) foo, (Resource) bar); 44 } 45 46 51 public boolean equals(Object o) { 52 if (isReference()) { 53 return getCheckedRef().equals(o); 54 } 55 if (o == null) { 56 return false; 57 } 58 return o == this || o.getClass().equals(getClass()); 59 } 60 61 65 public synchronized int hashCode() { 66 if (isReference()) { 67 return getCheckedRef().hashCode(); 68 } 69 return getClass().hashCode(); 70 } 71 72 79 protected abstract int resourceCompare(Resource foo, Resource bar); 80 81 } 82 | Popular Tags |