|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.revusky.niggle.data.AbstractDataSource | +--com.revusky.niggle.data.AbstractMutableDataSource | +--com.revusky.niggle.data.jdbc.JDBCBackedRecordSet
A class that is essentially a facade in front of an external relational database table. This is just one of various possible implementations. This implementation allows for an in-memory cache of adjustable size. This container is probably highly efficient for a web app whose profile is that there are a lot of reads and relatively few writes to the external RDBMS. That is probably more the rule than the exception.
Constructor Summary | |
JDBCBackedRecordSet()
|
Method Summary | |
void |
delete(Record rec)
Delete a record given its primary lookup key. |
Record |
get(java.lang.String type,
java.lang.Object key)
|
protected JDBCConnection |
getConnection()
|
void |
init(java.util.Properties props)
TODO |
void |
insert(Record rec)
Adds a new record to the managed pool. |
java.util.List |
keys(java.lang.String type)
|
void |
recordDeleted(DataEvent event)
invoked when the MutableDataSource whose events we are listening to has just deleted a record. |
void |
recordInserted(DataEvent event)
invoked when the MutableDataSource whose events we are listening to has just inserted a new record. |
void |
recordUpdated(DataEvent event)
invoked when the MutableDataSource whose events we are listening to has just updated an existing record. |
java.util.List |
select(java.lang.String type,
RecordFilter filter)
Fetches a list of records matching filter. |
protected java.lang.Object |
uniqueKey(Record rec)
|
void |
update(Record oldRec,
Record newRec)
Replaces an existing version of a record with a new updated version. |
void |
wipeCache()
If this data source is backed by some external mechanism, like an RDBMS, wipes the in-memory cache, if one is being maintained. |
Methods inherited from class com.revusky.niggle.data.AbstractMutableDataSource |
addDataListener, close, fireDataEvent, freeze, getRecords, markStale, normalizeKey, removeDataListener, select |
Methods inherited from class com.revusky.niggle.data.AbstractDataSource |
get, getName, keys |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.revusky.niggle.data.DataSource |
get, getName, keys |
Constructor Detail |
public JDBCBackedRecordSet() throws java.io.IOException
Method Detail |
public void recordDeleted(DataEvent event) throws java.io.IOException
DataListener
recordDeleted
in interface DataListener
public void recordInserted(DataEvent event) throws java.io.IOException
DataListener
recordInserted
in interface DataListener
public void recordUpdated(DataEvent event) throws java.io.IOException
DataListener
recordUpdated
in interface DataListener
public void init(java.util.Properties props) throws java.io.IOException
AbstractMutableDataSource
init
in class AbstractMutableDataSource
public void delete(Record rec) throws java.io.IOException
MutableDataSource
com.revusky.niggle.data.MutableDataSource
the
- record to delete.public void insert(Record rec) throws java.io.IOException
MutableDataSource
com.revusky.niggle.data.MutableDataSource
rec
- the record to addDuplicateRecordException
- if another record already exists
with same primary key as 'rec'.java.io.IOException
- if the record cannot be
initialized (i.e. has missing fields or invalid
field values, etc.), or in case of a low-level error.public void update(Record oldRec, Record newRec) throws java.io.IOException
MutableDataSource
Not all underlying storage mediums will be able to support these semantics. Check your implementation carefully.
com.revusky.niggle.data.MutableDataSource
oldRec
- the record to replace.newRec
- the new record.ModifiedRecordException
- thrown if the record was modified
by another process since rec was requested from a data source.java.io.IOException
- thrown in case of any other database or
communication error.public java.util.List keys(java.lang.String type) throws java.io.IOException
com.revusky.niggle.data.DataSource
type
- the record type we are interested,
under some circumstances, this may be null.public Record get(java.lang.String type, java.lang.Object key) throws java.io.IOException
com.revusky.niggle.data.DataSource
type
- the type of the record, if this is null,
then any type will do.key
- the lookup keypublic void wipeCache()
MutableDataSource
wipeCache
in class AbstractMutableDataSource
public java.util.List select(java.lang.String type, RecordFilter filter) throws java.io.IOException
MutableDataSource
com.revusky.niggle.data.MutableDataSource
the
- type of record we are interested in, possibly nullfilter
- the record filter, or null.protected JDBCConnection getConnection()
protected java.lang.Object uniqueKey(Record rec) throws java.io.IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |