1 42 43 package org.jfree.util; 44 45 import java.io.Serializable ; 46 import java.util.Comparator ; 47 48 55 public class ClassComparator implements Comparator , Serializable { 56 57 58 private static final long serialVersionUID = -5225335361837391120L; 59 60 63 public ClassComparator() { 64 super(); 65 } 66 67 101 public int compare(final Object o1, final Object o2) { 102 final Class c1 = (Class ) o1; 103 final Class c2 = (Class ) o2; 104 if (c1.equals(o2)) { 105 return 0; 106 } 107 if (c1.isAssignableFrom(c2)) { 108 return -1; 109 } 110 else { 111 if (!c2.isAssignableFrom(c2)) { 112 throw new IllegalArgumentException ( 113 "The classes share no relation" 114 ); 115 } 116 return 1; 117 } 118 } 119 120 128 public boolean isComparable(final Class c1, final Class c2) { 129 return (c1.isAssignableFrom(c2) || c2.isAssignableFrom(c1)); 130 } 131 } 132 | Popular Tags |