Package twisted :: Package enterprise :: Module reflector :: Class Reflector
[frames | no frames]

Class Reflector

Known Subclasses:
SQLReflector, XMLReflector

Base class for enterprise reflectors. This implements row caching.
Method Summary
  __init__(self, rowClasses)
Initialize me against a database.
  __getstate__(self)
  __setstate__(self, state)
  _populate(self)
Implement me to populate schema information for the reflector.
  addToCache(self, rowObject)
NOTE: Should this be recursive?! requires better container knowledge...
  addToParent(self, parentRow, rows, tableName)
util method used by reflectors.
  buildWhereClause(self, relationship, row)
util method used by reflectors.
  deleteRow(self, rowObject)
delete the row for this object from the database.
  findInCache(self, rowClass, kw)
  getTableInfo(self, rowObject)
Get a TableInfo record about a particular instance.
  insertRow(self, rowObject)
insert a new row for this object instance.
  loadObjectsFrom(self, tableName, parent, data, whereClause, loadChildren)
Implement me to load objects from the database.
  populateSchemaFor(self, tableInfo)
This is called once for each registered rowClass to add it and its foreign key relationships for that rowClass to the schema.
  removeFromCache(self, rowObject)
NOTE: should this be recursive!??
  updateRow(self, rowObject)
update this rowObject to the database.

Class Variable Summary
int populated = 0                                                                     

Method Details

__init__(self, rowClasses)
(Constructor)

Initialize me against a database.
Parameters:
rowClasses - a list of row class objects that describe the database schema.

_populate(self)

Implement me to populate schema information for the reflector.

addToCache(self, rowObject)

NOTE: Should this be recursive?! requires better container knowledge...

addToParent(self, parentRow, rows, tableName)

util method used by reflectors. adds these rows to the parent row object. If a rowClass does not have a containerMethod, then a list attribute "childRows" will be used.

buildWhereClause(self, relationship, row)

util method used by reflectors. builds a where clause to link a row to another table.

deleteRow(self, rowObject)

delete the row for this object from the database.

getTableInfo(self, rowObject)

Get a TableInfo record about a particular instance.

This record contains various information about the instance's class as registered with this reflector.
Parameters:
rowObject - a RowObject instance of a class previously registered with me.
Raises:
twisted.enterprise.row.DBError - raised if this class was not previously registered.

insertRow(self, rowObject)

insert a new row for this object instance.

loadObjectsFrom(self, tableName, parent=None, data=None, whereClause=[], loadChildren=1)

Implement me to load objects from the database.
Parameters:
whereClause - a list of tuples of (columnName, conditional, value) so it can be parsed by all types of reflectors. eg.:
 whereClause = [("name", EQUALS, "fred"), ("age", GREATERTHAN, 18)]

populateSchemaFor(self, tableInfo)

This is called once for each registered rowClass to add it and its foreign key relationships for that rowClass to the schema.

removeFromCache(self, rowObject)

NOTE: should this be recursive!??

updateRow(self, rowObject)

update this rowObject to the database.

Class Variable Details

populated

Type:
int
Value:
0                                                                     

Generated by Epydoc 2.0 on Sat May 15 20:08:31 2004 http://epydoc.sf.net