1 23 24 29 30 package com.sun.jdo.api.persistence.model.jdo.impl; 31 32 import java.beans.PropertyVetoException ; 33 34 import com.sun.jdo.api.persistence.model.ModelException; 35 import com.sun.jdo.api.persistence.model.ModelVetoException; 36 import com.sun.jdo.api.persistence.model.jdo.PersistenceFieldElement; 37 import com.sun.jdo.spi.persistence.utility.JavaTypeHelper; 38 39 44 public class PersistenceFieldElementImpl extends PersistenceMemberElementImpl 45 implements PersistenceFieldElement.Impl 46 { 47 48 private static final int READ_SENSITIVE = 1; 49 50 51 private static final int WRITE_SENSITIVE = 2; 52 53 54 private int _persistenceType; 55 56 57 private int _derivedModifier; 58 59 60 private boolean _isKey; 61 62 65 public PersistenceFieldElementImpl () 66 { 67 this(null); 68 } 69 70 73 public PersistenceFieldElementImpl (String name) 74 { 75 super(name); 76 _persistenceType = PersistenceFieldElement.PERSISTENT; 77 } 78 79 84 public int getPersistenceType() { return _persistenceType; } 85 86 92 public void setPersistenceType (int type) throws ModelException 93 { 94 Integer old = new Integer (getPersistenceType()); 95 Integer newType = new Integer (type); 96 97 try 98 { 99 fireVetoableChange(PROP_PERSISTENCE, old, newType); 100 _persistenceType = type; 101 firePropertyChange(PROP_PERSISTENCE, old, newType); 102 } 103 catch (PropertyVetoException e) 104 { 105 throw new ModelVetoException(e); 106 } 107 } 108 109 120 public boolean isReadSensitive () 121 { 122 return ((PersistenceFieldElement.DERIVED == getPersistenceType()) ? 123 ((_derivedModifier & READ_SENSITIVE) != 0) : false); 124 } 125 126 136 public void setReadSensitive (boolean flag) throws ModelException 137 { 138 Boolean old = JavaTypeHelper.valueOf(isReadSensitive()); 139 Boolean newFlag = JavaTypeHelper.valueOf(flag); 140 141 try 142 { 143 fireVetoableChange(PROP_SENSITIVITY, old, newFlag); 144 145 if (flag) 146 _derivedModifier |= READ_SENSITIVE; 147 else 148 _derivedModifier &= READ_SENSITIVE; 149 150 firePropertyChange(PROP_SENSITIVITY, old, newFlag); 151 } 152 catch (PropertyVetoException e) 153 { 154 throw new ModelVetoException(e); 155 } 156 } 157 158 169 public boolean isWriteSensitive () 170 { 171 return ((PersistenceFieldElement.DERIVED == getPersistenceType()) ? 172 ((_derivedModifier & WRITE_SENSITIVE) != 0) : false); 173 } 174 175 185 public void setWriteSensitive (boolean flag) throws ModelException 186 { 187 Boolean old = JavaTypeHelper.valueOf(isWriteSensitive()); 188 Boolean newFlag = JavaTypeHelper.valueOf(flag); 189 190 try 191 { 192 fireVetoableChange(PROP_SENSITIVITY, old, newFlag); 193 194 if (flag) 195 _derivedModifier |= WRITE_SENSITIVE; 196 else 197 _derivedModifier &= WRITE_SENSITIVE; 198 199 firePropertyChange(PROP_SENSITIVITY, old, newFlag); 200 } 201 catch (PropertyVetoException e) 202 { 203 throw new ModelVetoException(e); 204 } 205 } 206 207 212 public boolean isKey () { return _isKey; } 213 214 220 public void setKey (boolean flag) throws ModelException 221 { 222 Boolean old = JavaTypeHelper.valueOf(isKey()); 223 Boolean newFlag = JavaTypeHelper.valueOf(flag); 224 225 try 226 { 227 fireVetoableChange(PROP_KEY_FIELD, old, newFlag); 228 _isKey = flag; 229 firePropertyChange(PROP_KEY_FIELD, old, newFlag); 230 } 231 catch (PropertyVetoException e) 232 { 233 throw new ModelVetoException(e); 234 } 235 } 236 } 237 | Popular Tags |