1 4 package com.nightlabs.ipanema.person; 5 6 import java.io.Serializable ; 7 import java.util.Collection ; 8 import java.util.HashMap ; 9 import java.util.Map ; 10 11 import javax.jdo.InstanceCallbacks; 12 13 import com.nightlabs.ipanema.base.DuplicateKeyException; 14 import com.nightlabs.ipanema.person.i18n.PersonStructBlockName; 15 import com.nightlabs.ipanema.person.id.PersonStructBlockID; 16 import com.nightlabs.ipanema.person.id.PersonStructFieldID; 17 18 22 23 31 public class PersonStructBlock 32 implements Serializable , InstanceCallbacks, Comparable  33 34 { 36 37 protected PersonStructBlock() { } 38 39 public PersonStructBlock(PersonStruct personStruct, PersonStructBlockID personStructBlockID) { 40 this( 41 personStruct, 42 personStructBlockID.personStructBlockOrganisationID, 43 personStructBlockID.personStructBlockID 44 ); 45 } 46 public PersonStructBlock( 47 PersonStruct personStruct, 48 String _personStructBlockOrganisationID, 49 String _personStructBlockID 50 ) 51 { 52 this.personStruct = personStruct; 53 this.personStructBlockOrganisationID = _personStructBlockOrganisationID; 54 this.personStructBlockID = _personStructBlockID; 55 this.primaryKey = getPrimaryKey(); 56 } 57 58 59 63 private String personStructBlockOrganisationID = null; 64 65 69 private String personStructBlockID = null; 70 71 74 public String getPersonStructBlockOrganisationID() { 75 return personStructBlockOrganisationID; 76 } 77 78 81 public String getPersonStructBlockID() { 82 return personStructBlockID; 83 } 84 85 86 public static String getPrimaryKey(String _personStructBlockOrganisatinID, String _personStructBlockID) { 87 return _personStructBlockOrganisatinID+"/"+_personStructBlockID; 88 } 89 90 public String getPrimaryKey() { 91 return getPrimaryKey(personStructBlockOrganisationID,personStructBlockID); 92 } 93 94 95 98 public void setPersonStructBlockOrganisationID(String personStructBlockOrganisationID) { 99 if (this.personStructBlockOrganisationID != null) 100 throw new IllegalStateException ("personStructBlockOrganisationID immutable. Can not change it after it has been defined!"); 101 102 this.personStructBlockOrganisationID = personStructBlockOrganisationID; 103 } 104 105 106 109 public void setPersonStructBlockID(String personStructBlockID) { 110 if (this.personStructBlockID != null) 111 throw new IllegalStateException ("Cannot change personStructBlockID after it has been defined!"); 112 113 this.personStructBlockID = personStructBlockID; 114 } 115 116 119 private String primaryKey; 120 121 124 private PersonStruct personStruct; 125 126 130 public PersonStruct getPersonStruct() { 131 return personStruct; 132 } 133 134 135 138 private boolean global = false; 139 140 146 public boolean isGlobal() { 147 return global; 148 } 149 150 153 public void setGlobal(boolean _global) { 154 this.global = _global; 155 } 156 157 160 private int orderID; 161 162 165 public int getOrderID() { 166 return orderID; 167 } 168 169 172 public void setOrderID(int _orderID) { 173 this.orderID = _orderID; 174 } 175 176 177 194 protected Map personStructFields = new HashMap (); 195 196 public Collection getPersonStructFields() 197 { 198 return this.personStructFields.values(); 199 } 200 201 205 206 210 public AbstractPersonStructField getPersonStructField(PersonStructFieldID personStructFieldID) 211 throws PersonStructFieldNotFoundException 212 { 213 return getPersonStructField(personStructFieldID.personStructFieldOrganisationID, personStructFieldID.personStructFieldID); 214 } 215 216 226 public AbstractPersonStructField getPersonStructField(String personStructFieldOrganisationID, String personStructFieldID) 227 throws PersonStructFieldNotFoundException 228 { 229 String structFieldKey = AbstractPersonStructField.getStructFieldKey(personStructFieldOrganisationID,personStructFieldID); 230 AbstractPersonStructField psf = (AbstractPersonStructField)personStructFields.get(structFieldKey); 231 if (psf == null) { 232 throw new PersonStructFieldNotFoundException("No PersonStructField with ID \""+structFieldKey+"\" existent in PersonStructBlock \""+getPersonStructBlockID()+"\"!"); 233 } 237 return psf; 238 } 239 240 254 public void addPersonStructField(AbstractPersonStructField personStructField) 255 throws DuplicateKeyException 256 { 257 if (personStructField == null) 258 throw new IllegalStateException ("Parameter personStructField must not be null!"); 259 String structFieldKey = personStructField.getStructFieldKey(); 260 if (personStructFields.containsKey(structFieldKey)) 261 throw new DuplicateKeyException("PersonStructField with key "+structFieldKey+" is already part of this PersonStructBlock"); 262 personStructFields.put(structFieldKey,personStructField); 263 } 264 265 269 protected PersonStructBlockName blockName = new PersonStructBlockName(); 270 271 public PersonStructBlockName getBlockName() { 272 return blockName; 273 } 274 275 276 277 281 protected boolean unique = false; 282 284 public void setUnique(boolean unique) { 285 this.unique = unique; 286 } 287 public boolean isUnique() { 288 return unique; 289 } 290 291 295 private int priority = Integer.MAX_VALUE; 296 297 public void setPriority(int priority) { 298 this.priority = priority; 299 } 300 301 public int compareTo(Object o) { 302 if (!(o instanceof PersonStructBlock)) { 303 if (this.equals(o)) { 304 return 0; 306 } 307 else return 1; 308 } 309 PersonStructBlock other = (PersonStructBlock)o; 310 if (other.priority < this.priority) 311 return 1; 312 else if (other.priority > this.priority) 313 return -1; 314 else { 315 if (this.equals(o)) { 316 return 0; 318 } 319 else return 1; 320 } 321 } 322 323 324 327 public void jdoPostLoad() 328 { 329 } 331 332 335 public void jdoPreStore() { 336 } 338 339 342 public void jdoPreClear() { 343 } 345 346 349 public void jdoPreDelete() { 350 } 352 353 } 354
| Popular Tags
|