1 22 package org.jboss.aspects.versioned; 23 import org.jboss.aop.InstanceAdvised; 24 import org.jboss.util.id.GUID; 25 26 public class DistributedFieldUpdate implements java.io.Serializable 27 { 28 private static final long serialVersionUID = -8249659475610689146L; 29 30 protected Object val; 31 protected long version; 32 protected int index; 33 34 public DistributedFieldUpdate() {} 35 public DistributedFieldUpdate(Object val, long version, int index) 36 { 37 setValue(val); 38 this.version = version; 39 this.index = index; 40 } 41 public long getVersionId() { return version; } 42 public void setVersionId(long newId) { version = newId; } 43 public int getFieldIndex() { return index; } 44 45 46 public boolean equals(Object obj) 47 { 48 DistributedFieldUpdate update = (DistributedFieldUpdate)obj; 49 return update.index == this.index; 50 } 51 52 public int hashCode() 53 { 54 return index; 55 } 56 57 58 public Object getValue() 59 { 60 if (val instanceof VersionReference) 61 { 62 return ((VersionReference)val).get(); 63 } 64 return val; 65 } 66 public void setValue(Object newVal) 67 { 68 if (newVal instanceof InstanceAdvised) 69 { 70 InstanceAdvised advised = (InstanceAdvised)newVal; 71 GUID guid = VersionManager.getGUID(advised); 72 if (guid != null) 73 { 74 val = new VersionReference(guid, advised); 76 return; 77 } 78 79 } 80 val = newVal; 81 } 82 public Object getNonDereferencedValue() 83 { 84 return val; 85 } 86 } 87 | Popular Tags |