1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from lodel.leapi.datahandlers.base_classes import DataHandler
- DataHandler.load_base_handlers()
-
- ##@defgroup lodel2_datahandlers Datahandlers
- #@ingroup lodel2_leapi
- #@ingroup lodel2_em
-
- ##@defgroup lodel2_dh_checks Datahandlers datas checking
- #@ingroup lodel2_datahandlers
-
- ##@package lodel.leapi.datahandlers Lodel2 datahandlers
- #
- #Datahandlers are object that handles datas check, construction and
- #consistency check
- #
-
-
- ##@page lodel2_dh_checks_page Datahandlers datas checking
- #@ingroup lodel2_dh_checks
- #
- #@section lodel2_dh_check_mech Datas checking mechanism
- #
- #The data checking mechanism is divided into 3 stages :
- # 1. **value checking** : a basic value check. Example : is len(value) < 52
- # 2. **data construction** : for datas that needs to be modified. Example :
- #a date that will be transformed into a Datetime object associated with
- #a timezone
- # 3. **data consistency checking** : perform a consistency checking on the
- #object from the "point of view" of the current field. Example : is the given
- #lodel_id an identifier of a Article
- #
- #@subsection lodel2_dh_check_impl Implementation
- #
- #Those three stages are implemented by 3 datahandlers methods :
- # - @ref base_classes.DataHandler.check_data_value() "check_data_value"
- # - @ref base_classes.DataHandler.construct_data() "construct_data"
- # - @ref base_classes.DataHandler.check_data_value() "check_data_consitency"
- #
- #@note To ensure the calls of the base classes methods child classes implements
- #those method with a '_' preffix :
- # - @ref base_classes.DataHandler._check_data_value "_check_data_value()"
- # - @ref base_classes.DataHandler._construct_data() "_construct_data"
- # - @ref base_classes.DataHandler._check_data_value() "_check_data_consitency"
- #
- #Examples of child classes can be found @ref datahandlers.datas "here"
- #
- #@subsubsection lodel2_dh_datas_construction Datas construction
- #
- #Datas construction is a bit tricky. When constructing a data handled by a
- #datahandler we may need to have access to other datas in the object (see
- #@ref base_classes.DataHandler.construct_data() "construct_data() arguments").
- #
- #The problem reside in the construction order, if we need other datas we have
- #to be sure that they are allready constructed. To achieve this goal the datas
- #dict given as arguement to
- #@ref base_classes.DataHandler.construct_data() "construct_data()" is an
- #@ref base_classes.DatasConstructor "DatasConstructor" instance. This class
- #check if a data is constructed when trying to access to it, if not it runs
- #the corresponding construct_data() (and have a circular dependencies detection
- #mechanism)
- #
- #@see base_classes.DatasConstructor.
|