[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