KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jeantessier > diff > RemovableDifferences


1 /*
2  * Copyright (c) 2001-2005, Jean Tessier
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Jean Tessier nor the names of his contributors
17  * may be used to endorse or promote products derived from this software
18  * without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */

32
33 package com.jeantessier.diff;
34
35 import org.apache.log4j.*;
36
37 /**
38  * Documents the difference, if any, for a given programming
39  * element that can be absent in either the old or the new
40  * codebase. This includes classes, interfaces, fields,
41  * constructors, and methods.
42  */

43 public abstract class RemovableDifferences implements Differences, Comparable JavaDoc {
44     private String JavaDoc name;
45
46     private String JavaDoc oldDeclaration = null;
47     private String JavaDoc newDeclaration = null;
48
49     protected RemovableDifferences(String JavaDoc name) {
50         this.name = name;
51     }
52
53     public String JavaDoc getName() {
54         return name;
55     }
56
57     public String JavaDoc getOldDeclaration() {
58         return oldDeclaration;
59     }
60
61     public void setOldDeclaration(String JavaDoc oldDeclaration) {
62         this.oldDeclaration = oldDeclaration;
63     }
64
65     public String JavaDoc getNewDeclaration() {
66         return newDeclaration;
67     }
68
69     public void setNewDeclaration(String JavaDoc newDeclaration) {
70         this.newDeclaration = newDeclaration;
71     }
72
73     public boolean isRemoved() {
74         boolean result = (oldDeclaration != null) && (newDeclaration == null);
75
76         Logger.getLogger(getClass()).debug(getName() + " IsRemoved(): " + result);
77         
78         return result;
79     }
80
81     public boolean isModified() {
82         boolean result = (oldDeclaration != null) && (newDeclaration != null) && !oldDeclaration.equals(newDeclaration);
83
84         Logger.getLogger(getClass()).debug(getName() + " IsModified(): " + result);
85         
86         return result;
87     }
88
89     public boolean isNew() {
90         boolean result = (oldDeclaration == null) && (newDeclaration != null);
91
92         Logger.getLogger(getClass()).debug(getName() + " IsNew(): " + result);
93         
94         return result;
95     }
96
97     public boolean isEmpty() {
98         return
99             !isNew() &&
100             !isModified() &&
101             !isRemoved();
102     }
103
104     public String JavaDoc toString() {
105         return getName();
106     }
107
108     public int compareTo(Object JavaDoc other) {
109         int result = 0;
110
111         if (other instanceof RemovableDifferences) {
112             result = getName().compareTo(((RemovableDifferences) other).getName());
113         } else {
114             throw new ClassCastException JavaDoc("Unable to compare RemovableDifferences to " + other.getClass().getName());
115         }
116
117         return result;
118     }
119 }
120
Popular Tags