package org.deuce.transaction.strongiso.field;
import org.deuce.transaction.tl2.LockTable;
import org.deuce.transform.Exclude;
/**
* Represents a base class for field write access.
* @author Guy Koralnd
*/
@Exclude
public class ReadFieldAccess{
protected Object reference;
protected long field;
private int hash;
public ReadFieldAccess(){}
public ReadFieldAccess( Object reference, long field){
init(reference, field);
}
public void init( Object reference, long field){
this.reference = reference;
this.field = field;
this.hash = (System.identityHashCode( reference) + (int)field);
}
@Override
public boolean equals( Object obj){
ReadFieldAccess other = (ReadFieldAccess)obj;
return reference == other.reference && field == other.field;
}
@Override
final public int hashCode(){
return hash;
}
public void clear(){
reference = null;
}
}