[CalendarServer-changes] [10615] CalendarServer/trunk/twext/who
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jan 31 16:24:04 PST 2013
Revision: 10615
http://trac.calendarserver.org//changeset/10615
Author: wsanchez at apple.com
Date: 2013-01-31 16:24:04 -0800 (Thu, 31 Jan 2013)
Log Message:
-----------
Add skeletal query logic.
Modified Paths:
--------------
CalendarServer/trunk/twext/who/directory.py
CalendarServer/trunk/twext/who/xml.py
Modified: CalendarServer/trunk/twext/who/directory.py
===================================================================
--- CalendarServer/trunk/twext/who/directory.py 2013-01-31 23:43:31 UTC (rev 10614)
+++ CalendarServer/trunk/twext/who/directory.py 2013-02-01 00:24:04 UTC (rev 10615)
@@ -60,13 +60,34 @@
return self.RecordTypeClass.iterconstants()
+ def recordsFromExpression(self, expression):
+ raise QueryNotSupportedError("Unknown expression: %s" % (expression,))
+
+
def recordsFromQuery(self, expressions, operand=Operand.AND):
+ results = None
+
for expression in expressions:
- raise QueryNotSupportedError("")
- return ()
+ recordsMatchingExpression = self.recordsFromExpression(expression)
+ if results is None:
+ results = recordsMatchingExpression
+ break
+ if operand == Operand.AND:
+ raise NotImplementedError()
+ elif operand == Operand.OR:
+ raise NotImplementedError()
+ else:
+ raise QueryNotSupportedError("Unknown operand: %s" % (operand,))
+ if results is None:
+ return ()
+
+ return results
+
+
+
class DirectoryRecord(FancyEqMixin, object):
implements(IDirectoryRecord)
Modified: CalendarServer/trunk/twext/who/xml.py
===================================================================
--- CalendarServer/trunk/twext/who/xml.py 2013-01-31 23:43:31 UTC (rev 10614)
+++ CalendarServer/trunk/twext/who/xml.py 2013-02-01 00:24:04 UTC (rev 10615)
@@ -30,8 +30,9 @@
from twisted.python.constants import Values, ValueConstant
+from twext.who.idirectory import DirectoryServiceError
from twext.who.idirectory import RecordType, FieldName
-from twext.who.idirectory import DirectoryServiceError
+from twext.who.idirectory import DirectoryQueryMatchExpression
from twext.who.directory import DirectoryService as BaseDirectoryService
from twext.who.directory import DirectoryRecord
@@ -237,3 +238,10 @@
self._unknownFieldNames = unknownFieldNames
self._index = index
+
+
+ def recordsFromExpression(self, expression):
+ if isinstance(expression, DirectoryQueryMatchExpression):
+ raise NotImplementedError()
+ else:
+ return BaseDirectoryService.recordsFromExpression(self, expression)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130131/f1788ccf/attachment.html>
More information about the calendarserver-changes
mailing list