1 4 package com.nightlabs.ipanema.accounting; 5 6 import java.io.Serializable ; 7 8 import javax.jdo.JDOHelper; 9 import javax.jdo.PersistenceManager; 10 import javax.jdo.StoreCallback; 11 12 import com.nightlabs.i18n.Localizable; 13 import com.nightlabs.jdo.LocalizedDetachable; 14 15 33 public class Tariff 34 implements Serializable , StoreCallback, Localizable, LocalizedDetachable 35 { 36 40 private String organisationID; 41 42 45 private long tariffID = -1; 46 47 50 private String primaryKey; 51 52 55 private TariffName name; 56 57 public Tariff() { } 58 59 public Tariff(String organisationID) 60 { 61 this.organisationID = organisationID; 62 this.primaryKey = getPrimaryKey(organisationID, tariffID); 64 this.name = new TariffName(this); 65 } 66 67 public static String getPrimaryKey(String organisationID, long tariffID) 68 { 69 return organisationID + '/' + Long.toHexString(tariffID); 70 } 71 72 75 public String getOrganisationID() 76 { 77 return organisationID; 78 } 79 82 public long getTariffID() 83 { 84 return tariffID; 87 } 88 91 public void setTariffID(long tariffID) 92 { 93 this.tariffID = tariffID; 94 this.primaryKey = getPrimaryKey(getOrganisationID(), tariffID); 95 } 96 103 public String getPrimaryKey() 104 { 105 return primaryKey; 106 } 107 108 111 public void jdoPreStore() 112 { 113 if (tariffID < 0) { 114 PersistenceManager pm = JDOHelper.getPersistenceManager(this); 115 this.setTariffID( 116 TariffRegistry.getTariffRegistry(pm).createTariffID()); 117 } 118 } 119 120 123 public TariffName getName() 124 { 125 return name; 126 } 127 128 131 public void localize(String languageID) 132 { 133 name.localize(languageID); 134 } 135 136 139 public LocalizedDetachable detachCopyLocalized(String languageID, PersistenceManager pm) 140 { 141 Tariff tariff = (Tariff) pm.detachCopy(this); 142 tariff.name.localize(languageID, this.name); 143 return tariff; 144 } 145 } 146 | Popular Tags |