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.SerializableA 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 voidattach(SRecordInstance rinst)Deprecated.voidclearDirtyList()SDataSetclone()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.voiddestroy()voiddumpDataSet()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.SLoggetLogger()SSessionIgetSession()booleanisAttached()<RI extends SRecordInstance>
RInewInstanceNotInDataSet(SRecordMeta<RI> rmeta)Deprecated.voidpokeIntoDataSet(SRecordInstance rinst)Deprecated.voidpurge()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.voidremoveRecord(SRecordInstance rinst)Remove record from cache, does not flag it for deletion.voidsetSession(SSessionI session)java.lang.StringtoString()
-
-
-
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:
clonein 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:
toStringin classjava.lang.Object
-
getSession
public SSessionI getSession()
-
setSession
public void setSession(SSessionI session)
-
-