KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > core > tree > Change


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.test.core.tree;
10
11 import org.jboss.portal.common.FQN;
12
13 import java.util.Arrays JavaDoc;
14
15 /**
16  * Encapsulate a single change in the model.
17  *
18  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
19  * @version $Revision: 1.1 $
20  */

21 public class Change
22 {
23
24    public static Change createPropertyAdded(FQN nodeID, String JavaDoc name)
25    {
26       return new Change(new Object JavaDoc[]{"PropertyAdded",nodeID,name});
27    }
28
29    public static Change createPropertyChanged(FQN nodeID, String JavaDoc name)
30    {
31       return new Change(new Object JavaDoc[]{"PropertyChanged",nodeID,name});
32    }
33
34    public static Change createPropertyRemoved(FQN nodeID, String JavaDoc name)
35    {
36       return new Change(new Object JavaDoc[]{"PropertyRemoved",nodeID,name});
37    }
38
39    public static Change createChildAdded(FQN parentID, String JavaDoc name)
40    {
41       return new Change(new Object JavaDoc[]{"ChildAdded",parentID,name});
42    }
43
44    public static Change createChildRemoved(FQN parentID, String JavaDoc name)
45    {
46       return new Change(new Object JavaDoc[]{"ChildRemoved",parentID,name});
47    }
48
49    private final Object JavaDoc[] content;
50
51    private Change(Object JavaDoc[] content)
52    {
53       this.content = content;
54    }
55
56    public int hashCode()
57    {
58       int hashCode = 0;
59       for (int i = 0; i < content.length; i++)
60       {
61          Object JavaDoc o = content[i];
62          hashCode += hashCode * 43 + (o != null ? o.hashCode() : 1);
63       }
64       return hashCode;
65    }
66
67    public boolean equals(Object JavaDoc obj)
68    {
69       if (obj == this)
70       {
71          return true;
72       }
73       if (obj instanceof Change)
74       {
75          Change other = (Change)obj;
76          return Arrays.equals(content, other.content);
77       }
78       return false;
79    }
80
81    public String JavaDoc toString()
82    {
83       StringBuffer JavaDoc buffer = new StringBuffer JavaDoc('[');
84       for (int i = 0; i < content.length; i++)
85       {
86          Object JavaDoc o = content[i];
87          buffer.append(i == 0 ? "" : ",").append(String.valueOf(o));
88       }
89       return buffer.toString();
90    }
91 }
92
Popular Tags