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 Oct 25 00:55:03 2003 | http://epydoc.sf.net