1 6 package com.nightlabs.ipanema.person; 7 8 import java.io.Serializable ; 9 10 import javax.jdo.InstanceCallbacks; 11 import javax.jdo.PersistenceManager; 12 13 import com.nightlabs.i18n.Localizable; 14 import com.nightlabs.ipanema.person.i18n.PersonStructFieldName; 15 import com.nightlabs.ipanema.person.id.PersonStructFieldID; 16 import com.nightlabs.jdo.LocalizedDetachable; 17 18 26 34 public abstract class AbstractPersonStructField 35 implements Serializable , InstanceCallbacks, Localizable, LocalizedDetachable{ 36 37 40 private PersonStructBlock personStructBlock; 41 42 46 private String personStructBlockOrganisationID; 47 48 52 private String personStructBlockID; 53 54 55 59 private String personStructFieldOrganisationID; 60 61 65 private String personStructFieldID; 66 67 70 public String getPersonStructBlockOrganisationID() { 71 return personStructBlockOrganisationID; 72 } 73 74 77 public String getPersonStructBlockID() { 78 return personStructBlockID; 79 } 80 81 84 public String getPersonStructFieldOrganisationID() { 85 return personStructFieldOrganisationID; 86 } 87 88 91 public String getPersonStructFieldID() { 92 return personStructFieldID; 93 } 94 95 96 99 private String structFieldKey; 100 101 public static String getPrimaryKey( 102 String structBlockOrganisationID, 103 String structBlockID, 104 String structFieldOrganisationID, 105 String structFieldID) { 106 return structBlockOrganisationID+"/"+structBlockID+"/"+structFieldOrganisationID+"/"+structFieldID; 107 } 108 109 public String getPrimaryKey() { 110 return getPrimaryKey( 111 this.personStructBlockOrganisationID, 112 this.personStructBlockID, 113 this.personStructFieldOrganisationID, 114 this.personStructFieldID 115 ); 116 } 117 118 public static String getStructFieldKey(String structFieldOrganisationID, String structFieldID) { 119 return structFieldOrganisationID+"/"+structFieldID; 120 } 121 public String getStructFieldKey() { 122 return getStructFieldKey(personStructFieldOrganisationID,personStructFieldID); 123 } 124 public String getStructBlockKey() { 125 return getPersonStructBlockOrganisationID()+"/"+personStructBlockID; 126 } 127 128 protected AbstractPersonStructField() { } 129 130 protected AbstractPersonStructField(PersonStructBlock _personStructBlock, PersonStructFieldID personStructFieldID) { 131 this(_personStructBlock,personStructFieldID.personStructFieldOrganisationID,personStructFieldID.personStructFieldID); 132 } 133 134 public AbstractPersonStructField(PersonStructBlock _personStructBlock, String _personStructFieldOrganisationID, String _personStructFieldID) { 135 this.personStructBlockOrganisationID = _personStructBlock.getPersonStructBlockOrganisationID(); 137 this.personStructBlockID = _personStructBlock.getPersonStructBlockID(); 138 this.personStructFieldOrganisationID = _personStructFieldOrganisationID; 139 this.personStructFieldID = _personStructFieldID; 140 fieldName.setFallBackStructFieldName(this.getStructFieldKey()); 142 } 143 144 150 public abstract AbstractPersonDataField addNewDataFieldInstance(PersonDataBlock dataBlock); 152 156 160 protected PersonStructFieldName fieldName = new PersonStructFieldName(); 161 162 public PersonStructFieldName getFieldName() { 163 return fieldName; 164 } 165 166 170 protected void localize(String languageID, AbstractPersonStructField livingInstance) 171 { 172 livingInstance.getFieldName().localize(languageID); 173 } 174 175 178 public void localize(String languageID) { 179 localize(languageID,this); 180 } 181 182 186 public LocalizedDetachable detachCopyLocalized(String languageID, PersistenceManager pm) { 187 AbstractPersonStructField abstractStructField = (AbstractPersonStructField) pm.detachCopy(this); 188 abstractStructField.localize(languageID, this); 189 return abstractStructField; 190 } 191 192 196 private int priority = Integer.MAX_VALUE; 197 198 public void setPriority(int priority) { 199 this.priority = priority; 200 } 201 202 205 public int compareTo(Object o) { 206 if (!(o instanceof AbstractPersonStructField)) { 207 if (this.equals(o)) { 208 return 0; 210 } 211 else return 1; 212 } 213 AbstractPersonStructField other = (AbstractPersonStructField)o; 214 if (other.getStructBlockKey().equals(this.getStructBlockKey())) { 215 if (other.priority < this.priority) 217 return 1; 218 else if (other.priority > this.priority) 219 return -1; 220 else { 221 if (this.equals(o)) { 222 return 0; 224 } 225 else return 1; 226 } 227 } 228 else 229 return 1; 230 } 231 232 233 236 public void jdoPostLoad() { 237 } 239 240 243 public void jdoPreStore() { 244 } 246 247 250 public void jdoPreClear() { 251 } 253 254 257 public void jdoPreDelete() { 258 } 260 } 261 | Popular Tags |