- Table.__init__(self, api, Message, columns)
-
- sql = "SELECT %s from messages WHERE True" % \
- ", ".join(self.columns)
-
- if enabled is not None:
- sql += " AND enabled IS %s" % enabled
-
- if message_filter is not None:
- if isinstance(message_filter, (list, tuple, set, int, long)):
- message_filter = Filter(Message.fields, {'message_id': message_filter})
- sql += " AND (%s) %s" % message_filter.sql(api, "OR")
- elif isinstance(message_filter, dict):
- message_filter = Filter(Message.fields, message_filter)
- sql += " AND (%s) %s" % message_filter.sql(api, "AND")
- else:
- raise PLCInvalidArgument, "Wrong message filter %r"%message_filter
-
- self.selectall(sql)
+ if not message_filter:
+ messages = Message().select()
+ if isinstance(message_filter, (list, tuple, set, int, long)):
+ messages = Message().select(filter={'message_id': message_filter})
+ elif isinstance(message_filter, dict):
+ messages = Message().select(filter=message_filter)
+ else:
+ raise PLCInvalidArgument, "Wrong message filter %r"%message_filter
+
+ for message in messages:
+ self.append(message)