Package simpleorm.dataset
Class SDataSet
- java.lang.Object
-
- simpleorm.dataset.SDataSet
-
- All Implemented Interfaces:
java.io.Serializable
public class SDataSet extends java.lang.Object implements java.io.Serializable
A DataSet contains records of various types together with their meta data. The records are indexed by their type and primary keys, and so can be efficiently retrieved. A list of dirty records that need to be updated is also maintained.A DataSet is normally associated with a SSession/Jdbc, and is accessed indirectly via the SSessionJdbc methods. But a DataSet can also be accessed directly when it is detached from the SSession.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SDataSet()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
attach(SRecordInstance rinst)
Deprecated.void
clearDirtyList()
SDataSet
clone()
Clone the dataset.<RI extends SRecordInstance>
RIcreate(SRecordMeta<RI> rmeta, java.lang.Object... keys)
static <RI extends SRecordInstance>
RIcreateDetachedInstance(SRecordMeta<RI> rmeta)
Deprecated.<RI extends SRecordInstance>
RIcreateWithNullKey(SRecordMeta<RI> rmeta)
Used if no key is known, and one is to be provided later.void
destroy()
void
dumpDataSet()
Dumps out the entire cache of records for this connection.<RI extends SRecordInstance>
RIfind(SRecordMeta<RI> rmeta, java.lang.Object... keys)
<RI extends SRecordInstance>
RIfindOrCreate(SRecordMeta<RI> rmeta, java.lang.Object... keys)
<RI extends SRecordInstance>
RIfindUsingPrototype(RI rinst)
Deprecated.java.util.List<SRecordInstance>
getDirtyRecords()
Ordered list of SRecordInstances to flush and purge.SLog
getLogger()
SSessionI
getSession()
boolean
isAttached()
<RI extends SRecordInstance>
RInewInstanceNotInDataSet(SRecordMeta<RI> rmeta)
Deprecated.void
pokeIntoDataSet(SRecordInstance rinst)
Deprecated.void
purge()
Remove all records from cache and update list.java.util.Collection<SRecordInstance>
queryAllRecords()
<I extends SRecordInstance,R extends SRecordInstance>
java.util.List<R>queryReferencing(I refed, SFieldReference<I> ref)
Return all records in dataset where rec.ref == ref.void
removeRecord(SRecordInstance rinst)
Remove record from cache, does not flag it for deletion.void
setSession(SSessionI session)
java.lang.String
toString()
-
-
-
Method Detail
-
findOrCreate
public <RI extends SRecordInstance> RI findOrCreate(SRecordMeta<RI> rmeta, java.lang.Object... keys)
-
find
public <RI extends SRecordInstance> RI find(SRecordMeta<RI> rmeta, java.lang.Object... keys)
-
create
public <RI extends SRecordInstance> RI create(SRecordMeta<RI> rmeta, java.lang.Object... keys)
-
createWithNullKey
public <RI extends SRecordInstance> RI createWithNullKey(SRecordMeta<RI> rmeta)
Used if no key is known, and one is to be provided later.
-
removeRecord
public void removeRecord(SRecordInstance rinst)
Remove record from cache, does not flag it for deletion.
-
queryAllRecords
public java.util.Collection<SRecordInstance> queryAllRecords()
-
queryReferencing
public <I extends SRecordInstance,R extends SRecordInstance> java.util.List<R> queryReferencing(I refed, SFieldReference<I> ref)
Return all records in dataset where rec.ref == ref. Ie. the inverse of findRecrod.
-
isAttached
public boolean isAttached()
-
clearDirtyList
public void clearDirtyList()
-
getDirtyRecords
public java.util.List<SRecordInstance> getDirtyRecords()
Ordered list of SRecordInstances to flush and purge.
-
purge
public void purge()
Remove all records from cache and update list.
-
destroy
public void destroy()
-
clone
public SDataSet clone()
Clone the dataset. Useful befor attempting to attach and commit to recover from errors. (See LongTransactionTest).Curent implementation uses slow serialization alg, should really use clone()/able.
- Overrides:
clone
in classjava.lang.Object
-
newInstanceNotInDataSet
@Deprecated public <RI extends SRecordInstance> RI newInstanceNotInDataSet(SRecordMeta<RI> rmeta)
Deprecated.Create a new instance of this record, used by SSession during the fiddly doFindOrCreate etc.
-
findUsingPrototype
@Deprecated public <RI extends SRecordInstance> RI findUsingPrototype(RI rinst)
Deprecated.
-
pokeIntoDataSet
@Deprecated public void pokeIntoDataSet(SRecordInstance rinst)
Deprecated.
-
getLogger
public SLog getLogger()
-
createDetachedInstance
@Deprecated public static <RI extends SRecordInstance> RI createDetachedInstance(SRecordMeta<RI> rmeta)
Deprecated.Create a new instance of this record, unattached to a dataset. Used for backward compatibility, records normally ONLY live within a DataSet. Detached records are marked as new.
-
attach
@Deprecated public void attach(SRecordInstance rinst)
Deprecated.Attach rinst into the dataset, checking that it is not already there. References should be null. Only for compatibility with 2.*, normally records only normal created within data sets.
-
dumpDataSet
public void dumpDataSet()
Dumps out the entire cache of records for this connection. For debugging wierd bugs only.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getSession
public SSessionI getSession()
-
setSession
public void setSession(SSessionI session)
-
-