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 }