View Javadoc
1 /* 2 * Created on 04.03.2004 3 */ 4 package org.xpcards.model; 5 6 import java.io.Serializable; 7 import java.util.Date; 8 import java.util.Vector; 9 10 /*** 11 * Base Domain Model Element 12 * @author galu02 13 */ 14 public class ModelElement implements Serializable, IIDProvider { 15 16 private ModelElement parent = null; 17 private String id = null; 18 private String name = null; 19 private String description = null; 20 private Vector listenersCache = null; 21 private Date created = null; 22 private String createdBy = null; 23 24 // public ModelElement() {} 25 // 26 // public ModelElement(ModelElement parent) { 27 // this.parent = parent; 28 // } 29 30 /*** 31 * Root Element mainatains linsteners: all children delegates listener maintenance 32 * @return 33 */ 34 Vector getListeners() { 35 if (parent != null) { 36 // System.err.println("From parent"); 37 return parent.getListeners(); 38 } else if (listenersCache != null) { 39 // System.err.println("Listeners cache"); 40 return listenersCache; 41 } else { 42 // System.err.println("Create" + this); 43 listenersCache = new Vector(); 44 return listenersCache; 45 } 46 } 47 48 public void addModelElementListener(IModelElementListener listener) { 49 // System.err.println("addModelElementListener:" + listener); 50 if (listener == null) 51 return; 52 Vector l = getListeners(); 53 synchronized (l) { 54 if (!l.contains(listener)) { 55 l.add(listener); 56 } 57 }; 58 } 59 60 public void removeModelElementListener(IModelElementListener listener) { 61 if (listener == null) 62 return; 63 Vector l = getListeners(); 64 synchronized (l) { 65 l.remove(listener); 66 }; 67 } 68 69 void fireModelElementPropertyChanged(String propertyName, Object oldValue, Object newValue) { 70 Vector l = getListeners(); 71 synchronized (l) { 72 for (int i = 0; i < l.size(); i++) { 73 IModelElementListener ll = (IModelElementListener) l.elementAt(i); 74 ll.propertyChanged(this, propertyName, oldValue, newValue); 75 } 76 } 77 } 78 79 void fireCollectionElementAdded(ModelElement element, String collectionName, boolean recursive) { 80 fireCollectionElementAdded(this, element, collectionName, recursive); 81 } 82 83 void fireCollectionElementAdded( 84 ModelElement parent, 85 ModelElement element, 86 String collectionName, 87 boolean recursive) { 88 // System.err.println( 89 // "fireCollectionElementAdded:" 90 // + parent 91 // + ", " 92 // + element 93 // + "," 94 // + collectionName); 95 Vector l = getListeners(); 96 synchronized (l) { 97 for (int i = 0; i < l.size(); i++) { 98 IModelElementListener ll = (IModelElementListener) l.elementAt(i); 99 ll.collectionElementAdded(element, parent, collectionName, recursive); 100 } 101 } 102 } 103 104 void fireCollectionElementRemoved(ModelElement element, String collectionName) { 105 fireCollectionElementRemoved(this, element, collectionName); 106 } 107 108 void fireCollectionElementRemoved(ModelElement parent, ModelElement element, String collectionName) { 109 Vector l = getListeners(); 110 synchronized (l) { 111 for (int i = 0; i < l.size(); i++) { 112 IModelElementListener ll = (IModelElementListener) l.elementAt(i); 113 ll.collectionElementRemoved(element, parent, collectionName); 114 } 115 } 116 } 117 118 /*** 119 * @return 120 */ 121 public String getId() { 122 return id; 123 } 124 125 /*** 126 * @param string 127 */ 128 public void setId(String string) { 129 if (id != string) { 130 String old = id; 131 id = string; 132 fireModelElementPropertyChanged("description", old, id); 133 } 134 } 135 136 /*** 137 * @return 138 */ 139 public String getName() { 140 return name; 141 } 142 143 /*** 144 * @param string 145 */ 146 public void setName(String string) { 147 if (name != string) { 148 String old = name; 149 name = string; 150 fireModelElementPropertyChanged("description", old, name); 151 } 152 } 153 154 /*** 155 * @return 156 */ 157 public String getDescription() { 158 return description; 159 } 160 161 /*** 162 * @param string 163 */ 164 public void setDescription(String string) { 165 if (description != string) { 166 String old = description; 167 description = string; 168 fireModelElementPropertyChanged("description", old, description); 169 } 170 } 171 172 /*** 173 * @return 174 */ 175 public ModelElement getParent() { 176 return parent; 177 } 178 179 /*** 180 * @param element 181 */ 182 public void setParent(ModelElement element) { 183 parent = element; 184 } 185 186 public ModelElementCollection[] getChildrenCollections() { 187 return null; 188 } 189 190 /*** 191 * @return 192 */ 193 public Date getCreated() { 194 return created; 195 } 196 197 /*** 198 * @return 199 */ 200 public String getCreatedBy() { 201 return createdBy; 202 } 203 204 /*** 205 * @param date 206 */ 207 public void setCreated(Date date) { 208 created = date; 209 } 210 211 /*** 212 * @param string 213 */ 214 public void setCreatedBy(String string) { 215 createdBy = string; 216 } 217 218 /*** 219 * @see java.lang.Object#equals(java.lang.Object) 220 */ 221 public boolean equals(Object obj) { 222 if (obj instanceof ModelElement) { 223 ModelElement o = (ModelElement) obj; 224 if (getName() != o.getName()) { 225 return false; 226 } 227 if (getCreated() != o.getCreated()) { 228 return false; 229 } 230 if (getCreatedBy() != o.getCreatedBy()) { 231 return false; 232 } 233 if (getDescription() != o.getDescription()) { 234 return false; 235 } 236 if (getId() != o.getId()) { 237 return false; 238 } 239 return true; 240 } 241 return false; 242 } 243 244 }

This page was automatically generated by Maven