package org.multiverse.stms.gamma.transactionalobjects; import org.multiverse.api.functions.Function; import org.multiverse.stms.gamma.GammaConstants; import org.multiverse.stms.gamma.GammaObjectPool; @SuppressWarnings({"ClassWithTooManyFields"}) public final class Tranlocal<E> implements GammaConstants { public E ref_value; public long version; public int lockMode; public BaseGammaTxnRef owner; public int mode; public boolean hasDepartObligation; public boolean isDirty; public Tranlocal next; public Tranlocal previous; public CallableNode headCallable; public boolean writeSkewCheck; public long long_oldValue; public E ref_oldValue; public long long_value; public boolean isDirty() { return isDirty; } public void setDirty(boolean dirty) { isDirty = dirty; } public int getLockMode() { return lockMode; } public void setLockMode(int lockMode) { this.lockMode = lockMode; } public boolean hasDepartObligation() { return hasDepartObligation; } public void setDepartObligation(boolean b) { this.hasDepartObligation = b; } public boolean isCommuting() { return mode == TRANLOCAL_COMMUTING; } public boolean isConstructing() { return mode == TRANLOCAL_CONSTRUCTING; } public boolean isRead() { return mode == TRANLOCAL_READ; } public boolean isWrite() { return mode == TRANLOCAL_WRITE; } public void addCommutingFunction(GammaObjectPool pool, Function function) { final CallableNode newHead = pool.takeCallableNode(); newHead.function = function; newHead.next = headCallable; headCallable = newHead; } public int getMode() { return mode; } public boolean isConflictCheckNeeded() { return writeSkewCheck; } }