1 package org.codehaus.xfire.handler; 2 3 public class Phase 4 implements Comparable 5 { 6 public final static String TRANSPORT = "transport"; 7 public final static String PARSE = "parse"; 8 public final static String PRE_DISPATCH = "pre-dispatch"; 9 public final static String DISPATCH = "dispatch"; 10 public final static String POLICY = "policy"; 11 public final static String USER = "user"; 12 public final static String PRE_INVOKE = "pre-invoke"; 13 public final static String SERVICE = "service"; 14 public final static String POST_INVOKE = "post-invoke"; 15 public final static String SEND = "send"; 16 17 private String name; 18 private int priority; 19 20 public Phase(String name, int priority) 21 { 22 this.name = name; 23 this.priority = priority; 24 } 25 public String getName() 26 { 27 return name; 28 } 29 public void setName(String name) 30 { 31 this.name = name; 32 } 33 public int getPriority() 34 { 35 return priority; 36 } 37 public void setPriority(int priority) 38 { 39 this.priority = priority; 40 } 41 42 public boolean equals(Object obj) 43 { 44 if (obj.hashCode() != hashCode()) 45 return false; 46 47 if (!(obj instanceof Phase)) 48 return false; 49 50 Phase p = (Phase) obj; 51 if (p.getName().equals(name) && p.getPriority() == priority) 52 { 53 return true; 54 } 55 56 return false; 57 } 58 59 public int hashCode() 60 { 61 return priority ^= name.hashCode(); 62 } 63 64 public int compareTo(Object obj) 65 { 66 Phase phase = (Phase) obj; 67 68 int result = 0; 69 int p2 = phase.getPriority(); 70 if (p2 < priority) return 1; 71 if (p2 > priority) return -1; 72 73 return phase.getName().compareTo(name); 74 } 75 76 77 }