2 # Functions for interacting with the address_types table in the database
4 # Mark Huang <mlhuang@cs.princeton.edu>
5 # Copyright (C) 2006 The Trustees of Princeton University
8 from types import StringTypes
9 from PLC.Faults import *
10 from PLC.Parameter import Parameter
11 from PLC.Storage.AlchemyObj import AlchemyObj
13 class AddressAddressType(AlchemyObj):
15 Representation of a row in the address_types table. To use,
16 instantiate with a dict of values.
19 tablename = 'address_types'
20 join_tables = ['address_address_type']
22 'address_id': Parameter(int, "Address identifier"),
23 'address_type_id': Parameter(int, "Address type identifier"),
27 def sync(self, insert=False, validate=True):
28 AlchemyObj.sync(self, insert, validate):
29 AlchemyObj.insert(self, dict(self))
32 def delete(self, commit=True):
33 AlchemyObj.delete(self, dict(self))
35 class AddressAddressTypes(list):
37 Representation of the address_types table in the database.
40 def __init__(self, api, filter = None, columns = None):
42 address_types = AddressAddressType().select()
43 elif isinstance(address_type_filter, dict):
44 address_types = AddressAddressType().select(filter=filter)
46 raise PLCInvalidArgument, "Wrong address address_type filter %r"filter
48 for address_type in address_types:
49 self.append(address_type)