public class StrandedTransactionalRecord<R> extends AbstractRecord<R> implements Stranded, Record<R>, co.paralleluniverse.common.util.DelegatingEquals
Provides transaction-protected access to a Record
. Unlike TransactionalRecord
, rather than a new reference that’s created by the transaction, this class implements Record
directly, and a reference to this object can be held indefinitely (i.e. it is never invalidated unlike records returned by transactions when the elements are TransactionalRecord
s). However, it only allows read or write access whether an appropriate transaction is open.
type
Constructor and Description |
---|
StrandedTransactionalRecord(Record<R> record,
boolean canAlwaysReadOnStrand,
TXNContainer txnContainer)
Wraps a given record with transaction-protected access.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj) |
<V> V |
get(Field.ArrayField<? super R,V> field,
int index) |
<V> void |
get(Field.ArrayField<? super R,V> field,
V[] target,
int offset) |
void |
get(Field.BooleanArrayField<? super R> field,
boolean[] target,
int offset) |
boolean |
get(Field.BooleanArrayField<? super R> field,
int index) |
boolean |
get(Field.BooleanField<? super R> field) |
void |
get(Field.ByteArrayField<? super R> field,
byte[] target,
int offset) |
byte |
get(Field.ByteArrayField<? super R> field,
int index) |
byte |
get(Field.ByteField<? super R> field) |
void |
get(Field.CharArrayField<? super R> field,
char[] target,
int offset) |
char |
get(Field.CharArrayField<? super R> field,
int index) |
char |
get(Field.CharField<? super R> field) |
void |
get(Field.DoubleArrayField<? super R> field,
double[] target,
int offset) |
double |
get(Field.DoubleArrayField<? super R> field,
int index) |
double |
get(Field.DoubleField<? super R> field) |
void |
get(Field.FloatArrayField<? super R> field,
float[] target,
int offset) |
float |
get(Field.FloatArrayField<? super R> field,
int index) |
float |
get(Field.FloatField<? super R> field) |
int |
get(Field.IntArrayField<? super R> field,
int index) |
void |
get(Field.IntArrayField<? super R> field,
int[] target,
int offset) |
int |
get(Field.IntField<? super R> field) |
long |
get(Field.LongArrayField<? super R> field,
int index) |
void |
get(Field.LongArrayField<? super R> field,
long[] target,
int offset) |
long |
get(Field.LongField<? super R> field) |
<V> V |
get(Field.ObjectArrayField<? super R,V> field,
int index) |
<V> void |
get(Field.ObjectArrayField<? super R,V> field,
V[] target,
int offset) |
<V> V |
get(Field.ObjectField<? super R,V> field) |
short |
get(Field.ShortArrayField<? super R> field,
int index) |
void |
get(Field.ShortArrayField<? super R> field,
short[] target,
int offset) |
short |
get(Field.ShortField<? super R> field) |
<V> V |
get(Field<? super R,V> field) |
Strand |
getStrand() |
int |
hashCode() |
void |
read(ObjectInput in) |
void |
read(ObjectInput in,
int numFields) |
<V> void |
set(Field.ArrayField<? super R,V> field,
int index,
V value) |
<S,V> void |
set(Field.ArrayField<? super R,V> field,
Record<S> source,
Field.ArrayField<? super S,V> sourceField) |
<V> void |
set(Field.ArrayField<? super R,V> field,
V[] source,
int offset) |
void |
set(Field.BooleanArrayField<? super R> field,
boolean[] source,
int offset) |
void |
set(Field.BooleanArrayField<? super R> field,
int index,
boolean value) |
<S> void |
set(Field.BooleanArrayField<? super R> field,
Record<S> source,
Field.BooleanArrayField<? super S> sourceField) |
void |
set(Field.BooleanField<? super R> field,
boolean value) |
void |
set(Field.ByteArrayField<? super R> field,
byte[] source,
int offset) |
void |
set(Field.ByteArrayField<? super R> field,
int index,
byte value) |
<S> void |
set(Field.ByteArrayField<? super R> field,
Record<S> source,
Field.ByteArrayField<? super S> sourceField) |
void |
set(Field.ByteField<? super R> field,
byte value) |
void |
set(Field.CharArrayField<? super R> field,
char[] source,
int offset) |
void |
set(Field.CharArrayField<? super R> field,
int index,
char value) |
<S> void |
set(Field.CharArrayField<? super R> field,
Record<S> source,
Field.CharArrayField<? super S> sourceField) |
void |
set(Field.CharField<? super R> field,
char value) |
void |
set(Field.DoubleArrayField<? super R> field,
double[] source,
int offset) |
void |
set(Field.DoubleArrayField<? super R> field,
int index,
double value) |
<S> void |
set(Field.DoubleArrayField<? super R> field,
Record<S> source,
Field.DoubleArrayField<? super S> sourceField) |
void |
set(Field.DoubleField<? super R> field,
double value) |
void |
set(Field.FloatArrayField<? super R> field,
float[] source,
int offset) |
void |
set(Field.FloatArrayField<? super R> field,
int index,
float value) |
<S> void |
set(Field.FloatArrayField<? super R> field,
Record<S> source,
Field.FloatArrayField<? super S> sourceField) |
void |
set(Field.FloatField<? super R> field,
float value) |
void |
set(Field.IntArrayField<? super R> field,
int[] source,
int offset) |
void |
set(Field.IntArrayField<? super R> field,
int index,
int value) |
<S> void |
set(Field.IntArrayField<? super R> field,
Record<S> source,
Field.IntArrayField<? super S> sourceField) |
void |
set(Field.IntField<? super R> field,
int value) |
void |
set(Field.LongArrayField<? super R> field,
int index,
long value) |
void |
set(Field.LongArrayField<? super R> field,
long[] source,
int offset) |
<S> void |
set(Field.LongArrayField<? super R> field,
Record<S> source,
Field.LongArrayField<? super S> sourceField) |
void |
set(Field.LongField<? super R> field,
long value) |
<V> void |
set(Field.ObjectArrayField<? super R,V> field,
int index,
V value) |
<S,V> void |
set(Field.ObjectArrayField<? super R,V> field,
Record<S> source,
Field.ObjectArrayField<? super S,V> sourceField) |
<V> void |
set(Field.ObjectArrayField<? super R,V> field,
V[] source,
int offset) |
<V> void |
set(Field.ObjectField<? super R,V> field,
V value) |
void |
set(Field.ShortArrayField<? super R> field,
int index,
short value) |
<S> void |
set(Field.ShortArrayField<? super R> field,
Record<S> source,
Field.ShortArrayField<? super S> sourceField) |
void |
set(Field.ShortArrayField<? super R> field,
short[] source,
int offset) |
void |
set(Field.ShortField<? super R> field,
short value) |
<V> void |
set(Field<? super R,V> field,
V value) |
void |
setStrand(Strand strand) |
String |
toString() |
void |
write(ObjectOutput out) |
fields, type, writeReplace
public StrandedTransactionalRecord(Record<R> record, boolean canAlwaysReadOnStrand, TXNContainer txnContainer)
Wraps a given record with transaction-protected access.
record
- the recordcanAlwaysReadOnStrand
- whether reads should be allowed on the current strand even if a transaction isn’t in effecttxnContainer
- the transactional container (like DB instance) that is the source of the relevant transactionspublic boolean equals(Object obj)
equals
in class AbstractRecord<R>
public String toString()
toString
in class AbstractRecord<R>
public void write(ObjectOutput out) throws IOException
write
in interface Record<R>
write
in class AbstractRecord<R>
IOException
public void read(ObjectInput in) throws IOException
read
in interface Record<R>
read
in class AbstractRecord<R>
IOException
public void read(ObjectInput in, int numFields) throws IOException
read
in interface Record<R>
read
in class AbstractRecord<R>
IOException
public <V> V get(Field.ObjectField<? super R,V> field)
public <V> V get(Field.ObjectArrayField<? super R,V> field, int index)
public <V> void get(Field.ObjectArrayField<? super R,V> field, V[] target, int offset)
public <V> void set(Field.ObjectField<? super R,V> field, V value)
public <V> void set(Field.ObjectArrayField<? super R,V> field, int index, V value)
public <V> void set(Field.ObjectArrayField<? super R,V> field, V[] source, int offset)
public <S,V> void set(Field.ObjectArrayField<? super R,V> field, Record<S> source, Field.ObjectArrayField<? super S,V> sourceField)
public boolean get(Field.BooleanField<? super R> field)
public void set(Field.BooleanField<? super R> field, boolean value)
public byte get(Field.ByteField<? super R> field)
public void set(Field.ByteField<? super R> field, byte value)
public short get(Field.ShortField<? super R> field)
public void set(Field.ShortField<? super R> field, short value)
public int get(Field.IntField<? super R> field)
public void set(Field.IntField<? super R> field, int value)
public long get(Field.LongField<? super R> field)
public void set(Field.LongField<? super R> field, long value)
public float get(Field.FloatField<? super R> field)
public void set(Field.FloatField<? super R> field, float value)
public double get(Field.DoubleField<? super R> field)
public void set(Field.DoubleField<? super R> field, double value)
public char get(Field.CharField<? super R> field)
public void set(Field.CharField<? super R> field, char value)
public boolean get(Field.BooleanArrayField<? super R> field, int index)
public void set(Field.BooleanArrayField<? super R> field, int index, boolean value)
public void get(Field.BooleanArrayField<? super R> field, boolean[] target, int offset)
public void set(Field.BooleanArrayField<? super R> field, boolean[] source, int offset)
public <S> void set(Field.BooleanArrayField<? super R> field, Record<S> source, Field.BooleanArrayField<? super S> sourceField)
public byte get(Field.ByteArrayField<? super R> field, int index)
public void set(Field.ByteArrayField<? super R> field, int index, byte value)
public void get(Field.ByteArrayField<? super R> field, byte[] target, int offset)
public void set(Field.ByteArrayField<? super R> field, byte[] source, int offset)
public <S> void set(Field.ByteArrayField<? super R> field, Record<S> source, Field.ByteArrayField<? super S> sourceField)
public short get(Field.ShortArrayField<? super R> field, int index)
public void set(Field.ShortArrayField<? super R> field, int index, short value)
public void get(Field.ShortArrayField<? super R> field, short[] target, int offset)
public void set(Field.ShortArrayField<? super R> field, short[] source, int offset)
public <S> void set(Field.ShortArrayField<? super R> field, Record<S> source, Field.ShortArrayField<? super S> sourceField)
public int get(Field.IntArrayField<? super R> field, int index)
public void set(Field.IntArrayField<? super R> field, int index, int value)
public void get(Field.IntArrayField<? super R> field, int[] target, int offset)
public void set(Field.IntArrayField<? super R> field, int[] source, int offset)
public <S> void set(Field.IntArrayField<? super R> field, Record<S> source, Field.IntArrayField<? super S> sourceField)
public long get(Field.LongArrayField<? super R> field, int index)
public void set(Field.LongArrayField<? super R> field, int index, long value)
public void get(Field.LongArrayField<? super R> field, long[] target, int offset)
public void set(Field.LongArrayField<? super R> field, long[] source, int offset)
public <S> void set(Field.LongArrayField<? super R> field, Record<S> source, Field.LongArrayField<? super S> sourceField)
public float get(Field.FloatArrayField<? super R> field, int index)
public void set(Field.FloatArrayField<? super R> field, int index, float value)
public void get(Field.FloatArrayField<? super R> field, float[] target, int offset)
public void set(Field.FloatArrayField<? super R> field, float[] source, int offset)
public <S> void set(Field.FloatArrayField<? super R> field, Record<S> source, Field.FloatArrayField<? super S> sourceField)
public double get(Field.DoubleArrayField<? super R> field, int index)
public void set(Field.DoubleArrayField<? super R> field, int index, double value)
public void get(Field.DoubleArrayField<? super R> field, double[] target, int offset)
public void set(Field.DoubleArrayField<? super R> field, double[] source, int offset)
public <S> void set(Field.DoubleArrayField<? super R> field, Record<S> source, Field.DoubleArrayField<? super S> sourceField)
public char get(Field.CharArrayField<? super R> field, int index)
public void set(Field.CharArrayField<? super R> field, int index, char value)
public void get(Field.CharArrayField<? super R> field, char[] target, int offset)
public void set(Field.CharArrayField<? super R> field, char[] source, int offset)
public <S> void set(Field.CharArrayField<? super R> field, Record<S> source, Field.CharArrayField<? super S> sourceField)
public <V> V get(Field.ArrayField<? super R,V> field, int index)
public <V> void set(Field.ArrayField<? super R,V> field, int index, V value)
public <V> void get(Field.ArrayField<? super R,V> field, V[] target, int offset)
public <V> void set(Field.ArrayField<? super R,V> field, V[] source, int offset)
public <S,V> void set(Field.ArrayField<? super R,V> field, Record<S> source, Field.ArrayField<? super S,V> sourceField)