delivery_solver_factory.py 3.03 KB
Newer Older
Jean-Paul Smets's avatar
Jean-Paul Smets committed
1 2 3 4 5 6 7
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
8
# programmers who take the whole responsibility of assessing all potential
Jean-Paul Smets's avatar
Jean-Paul Smets committed
9 10
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
11
# guarantees and support are strongly adviced to contract a Free Software
Jean-Paul Smets's avatar
Jean-Paul Smets committed
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
# 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 zope.interface import Interface

Jean-Paul Smets's avatar
Jean-Paul Smets committed
32 33
class IDeliverySolverFactory(Interface):
  """Delivery Solver Factory interface specification
Jean-Paul Smets's avatar
Jean-Paul Smets committed
34

Jean-Paul Smets's avatar
Jean-Paul Smets committed
35
  IDeliverySolverFactory provides methods to create delivery
Jean-Paul Smets's avatar
Jean-Paul Smets committed
36 37 38 39 40 41
  solver instances and retrieve metadata related to delivery
  solvers.

  NOTE:
    - wouldn't it be better to use ERP5 document
      classes for delivery solvers.
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
42
      (only meaningful reason: use activities to
Jean-Paul Smets's avatar
Jean-Paul Smets committed
43 44 45 46 47 48 49 50 51
      setTotalQuantity on 10,000+ movements)
  """

  def newDeliverySolver(class_name, movement_list):
    """
    Return a new instance of delivery solver of the given
    class_name and with appropriate parameters.

    class_name -- the class name of the delivery solver.
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
52

Jean-Paul Smets's avatar
Jean-Paul Smets committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66
    movement_list -- movements to initialise the instance with
    """

  def getDeliverySolverClassNameList():
    """
    Return the list of class names of available delivery solvers.
    """

  def getDeliverySolverTranslatedItemList(class_name_list=None):
    """
    Return the list of class names and translated titles of available
    delivery solvers. Use this method to fill listfields in user interface
    forms.

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
67
    class_name_list -- optional parameter to filter results only
Jean-Paul Smets's avatar
Jean-Paul Smets committed
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
                       with provided class names
    """

  def getDeliverySolverTranslatedTitle(class_name):
    """
    Return the title to be used in the user interface for the
    delivery solver with given class_name

    class_name -- the class name of a delivery solver
    """

  def getDeliverySolverTranslatedDescription(class_name):
    """
    Return the description to be used in the user interface for the
    delivery solver with given class_name

    class_name -- the class name of a delivery solver
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
85
    """