home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / python-support / python-rdflib / rdflib / sparql / bison / SolutionModifier.py < prev    next >
Encoding:
Python Source  |  2007-04-04  |  1.2 KB  |  36 lines

  1. ASCENDING_ORDER   = 1
  2. DESCENDING_ORDER  = 2
  3. UNSPECIFIED_ORDER = 3
  4.  
  5. ORDER_VALUE_MAPPING = {
  6.     ASCENDING_ORDER   : 'Ascending',
  7.     DESCENDING_ORDER  : 'Descending',
  8.     UNSPECIFIED_ORDER : 'Default',
  9. }
  10.  
  11. class SolutionModifier(object):
  12.     def __init__(self,orderClause=None,limitClause=None,offsetClause=None):
  13.         self.orderClause = orderClause
  14.         self.limitClause = limitClause
  15.         self.offsetClause = offsetClause
  16.  
  17.     def __repr__(self):
  18.         if not(self.orderClause or self.limitClause or self.offsetClause):
  19.             return ""
  20.         return "<SoutionModifier:%s%s%s>"%(
  21.             self.orderClause and  ' ORDER BY %s'%self.orderClause or '',
  22.             self.limitClause and  ' LIMIT %s'%self.limitClause or '',
  23.             self.offsetClause and ' OFFSET %s'%self.offsetClause or '')
  24.  
  25. class ParsedOrderConditionExpression(object):
  26.     """
  27.     A list of OrderConditions
  28.     OrderCondition ::= (('ASC'|'DESC')BrackettedExpression )|(FunctionCall|Var|BrackettedExpression)
  29.     """
  30.     def __init__(self,expression,order):
  31.         self.expression = expression
  32.         self.order = order
  33.  
  34.     def __repr__(self):
  35.         return "%s(%s)"%(ORDER_VALUE_MAPPING[self.order],self.expression.reduce())
  36.