1 28 29 30 package com.caucho.tools.profiler; 31 32 import java.util.Comparator ; 33 34 abstract class ProfilerNodeComparator 35 implements Comparator <ProfilerNode> 36 { 37 private boolean isDescendingName; 38 private boolean _isDescending; 39 40 public void setDescendingName(boolean isDescendingName) 41 { 42 this.isDescendingName = isDescendingName; 43 } 44 45 public void setDescending(boolean isDescending) 46 { 47 _isDescending = isDescending; 48 } 49 50 abstract protected int compareImpl(ProfilerNode o1, ProfilerNode o2); 51 52 protected int compareLong(long l1, long l2) 53 { 54 if (l1 < l2) 55 return -1; 56 else if (l1 == l2) 57 return 0; 58 else 59 return 1; 60 } 61 62 public int compare(ProfilerNode o1, ProfilerNode o2) 63 { 64 int cmp; 65 66 if (_isDescending) 67 cmp = compareImpl(o2, o1); 68 else 69 cmp = compareImpl(o1, o2); 70 71 if (cmp == 0) { 72 if (isDescendingName) 73 cmp = o2.getName().compareTo(o1.getName()); 74 else 75 cmp = o1.getName().compareTo(o2.getName()); 76 } 77 78 if (cmp == 0) { 79 if (!o1.equals(o2)) 80 cmp = -1; 81 } 82 83 return cmp; 84 } 85 } 86 | Popular Tags |