ActiveResult.py 2.92 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
##############################################################################
#
# Copyright (c) 2004 Nexedi SARL and Contributors. All Rights Reserved.
#                    Sebastien Robin <seb@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from Products.ERP5Type.Base import Base
from Products.ERP5Type.Utils import getPath
from zLOG import LOG
32
from Products.ERP5Type.Globals import InitializeClass, DTMLFile
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
from Products.PythonScripts.Utility import allow_class

class ActiveResult:
  """
    Encapsulates the result of deferred activity.
    This class is used by processes to store results
    (and eventually, errors)
  """

  # Standard severities
  TRACE   = -300
  DEBUG   = -200
  BLATHER = -100
  INFO    =    0
  PROBLEM =  100
  WARNING =  100
  ERROR   =  200
  PANIC   =  300
51 52
  # getProperty default
  _MARKER = None
53

54
  def __init__(self, summary='', severity=INFO, detail='', **kw):
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
    """
    set all parameters
    """
    if kw.has_key('object_path'):
      self.object_path = getPath(kw['object_path'],tuple=1)
      del kw['object_path']
    self.summary = summary
    self.severity = severity
    self.detail = detail
    self.__dict__.update(kw)

  def edit(self,**kw):
    """
    set all parameters
    """
    if kw.has_key('object_path'):
      self.object_path = getPath(kw['object_path'],tuple=1)
      del kw['object_path']
    self.__dict__.update(kw)

75
  def getProperty(self,value,d=_MARKER,**kw):
76 77 78
    """
    A simple getter
    """
79
    return getattr(self,value,d)
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

  def getResult(self):
    """
    Returns the result
    """
    return self.result

  def isResult(self):
    """
    Tells if the result is a result or an error
    """
    return self.severity <= self.INFO

  def isError(self):
    """
    Tells if the result is a result or an error
    """
    return self.severity > self.INFO


allow_class(ActiveResult)