;ς ΄˜@c@sΞdklZdklZdklZdklZdklZdk l Z l Z dk l Z dklZgZdefd „ƒYZeeƒd efd „ƒYZeeƒd efd „ƒYZdS((sClassSecurityInfo(sInitializeClass(s SimpleItem(s getToolByName(sKey(s ANY_CONTEXTs ANY_BUTTON(slog(saq_basesFormValidatorKeycBsEtZeƒZeidƒed„Zd„Zd„Zd„Z RS(NsallowcCsΌ|iƒ}|oK|idƒ}x9|D]-}|i|ƒ}|otd|‚q)q)Wn| o t }n|t j o|iƒ}n| o t }nti||||fƒdS(Ns/sIllegal template id: %s(s object_idsstrips controllerssplits path_elementssps_checkIdsss ValueErrors context_types ANY_CONTEXTsbuttonsNones ANY_BUTTONsKeys__init__sself(sselfs object_ids context_typesbuttons controllersssps path_elements((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys__init__s     cCs|idSdS(Ni(sselfskey(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys getObjectId1scCs|idSdS(Ni(sselfskey(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pysgetContextType4scCs|idSdS(Ni(sselfskey(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys getButton7s( s__name__s __module__sClassSecurityInfossecurityssetDefaultAccesssNones__init__s getObjectIdsgetContextTypes getButton(((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pysFormValidatorKeys      s FormValidatorcBs`tZeƒZeidƒed„Zd„Zd„Zd„Z d„Z d„Z d„Z RS( Nsallowc Csμt||||ƒ|_t|ƒtdƒjo|i dƒ}ngi }|D]!}|o||i ƒƒqRqR~}|o\xY|D]M}|i dƒ} x5| D]-} |i| ƒ}|otd|‚q¦q¦WqŠWn||_dS(Nss,s/sIllegal template id: %s(sFormValidatorKeys object_ids context_typesbuttons controllersselfskeystypes validatorsssplitsappends_[1]svsstrips path_elementssps_checkIdsss ValueError( sselfs object_ids context_typesbuttons validatorss controllersvsss_[1]sps path_elements((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys__init__Cs8cCs/t|iƒ|iƒ|iƒ|iƒƒSdS(N(s FormValidatorsselfs getObjectIdsgetContextTypes getButtons getValidators(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys__copy__RscCs|iiƒSdS(N(sselfskeys getObjectId(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys getObjectIdUscCs|iiƒSdS(N(sselfskeysgetContextType(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pysgetContextTypeXscCs|iiƒSdS(N(sselfskeys getButton(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys getButton[scCs |iSdS(N(sselfs validators(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys getValidators^scCs |iSdS(N(sselfskey(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pysgetKeyas( s__name__s __module__sClassSecurityInfossecurityssetDefaultAccesssNones__init__s__copy__s getObjectIdsgetContextTypes getButtons getValidatorssgetKey(((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys FormValidator>s        sFormValidatorContainercBsitZeƒZeidƒd„Zd„Zd„Zd„Zd„Z d„Z e e e e d„Z RS( NsdenycCs h|_dS(N(sselfs validators(sself((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys__init__lscCs>tƒ}x*|iiƒD]}|i|iƒƒqW|SdS(N(sFormValidatorContainersnewobjsselfs validatorssvaluessvssets__copy__(sselfsvsnewobj((sU/mnt/gmirror/ports/www/zope-cmfformcontroller/work/CMFFormController/FormValidator.pys__copy__os  cCs,t|ƒ|it|iƒƒ