def valide_liste_partielle(self,liste_courante):
return 0
+ def verif_item(self,valeur):
+ """
+ La methode verif du validateur effectue une validation complete de la valeur.
+ valeur peut etre un scalaire ou une liste. Le validateur doit traiter les 2
+ aspects s'il accepte des listes (dans ce cas la methode is_list doit retourner 1).
+ La methode valid_item sert pour effectuer des validations partielles de liste
+ Elle doit uniquement verifier la validite d'un item de liste mais pas les caracteristiques
+ de la liste
+ """
+ return 0
+
def get_into(self,liste_courante=None,into_courant=None):
"""
Cette méthode retourne la liste de choix proposée par le validateur. Si le validateur ne propose
class FunctionVal(Valid):pass
class OrVal(Valid):
+ def verif_item(self,valeur):
+ for validator in self.validators:
+ v=validator.verif_item(valeur)
+ if v :
+ return 1
+ return 0
+
def is_list(self):
"""
Si plusieurs validateurs sont reliés par un OU
return validator_into
class AndVal(Valid):
+ def info(self):
+ return "\n et ".join([v.info() for v in self.validators])
+
+ def verif_item(self,valeur):
+ for validator in self.validators:
+ v=validator.verif_item(valeur)
+ if not v :
+ # L'info n'est probablement pas la meme que pour verif ???
+ self.local_info=validator.info()
+ return 0
+ return 1
+
def is_list(self):
"""
Si plusieurs validateurs sont reliés par un ET
return into_courant
class CardVal(Valid):
+ def info(self):
+ return "longueur de liste comprise entre %s et %s" % (self.min,self.max)
+
def is_list(self):
if self.max == '**' or self.max > 1:
return 1
else:
return 0
+ def verif_item(self,valeur):
+ return 1
+
def valide_liste_partielle(self,liste_courante=None):
validite=1
print liste_courante
return liste_choix
class EnumVal(ListVal):
+ def verif_item(self,valeur):
+ if valeur not in self.into:return 0
+ return 1
+
def has_into(self):
return 1
class LongStr(ListVal):
def info_erreur_item(self):
return "Longueur de la chaine incorrecte"
+
+ def verif_item(self,valeur):
+ if len(valeur) < self.low :return 0
+ if len(valeur) > self.high:return 0
+ return 1
-class RangeVal(ListVal):pass
-class TypeVal(ListVal):pass
+class RangeVal(ListVal):
+ def verif_item(self,valeur):
+ if valeur < self.low :return 0
+ if valeur > self.high:return 0
+ return 1
+
+class TypeVal(ListVal):
+ def verif_item(self,valeur):
+ try:
+ self.coerce(valeur)
+ except:
+ return 0
+ return 1
+
class PairVal(ListVal):
def info_erreur_item(self):
print "Ihm.I_MCSIMP.PairVal.verif: ",valeur
return self.surcharge_verif(Noyau.N_VALIDATOR.PairVal.verif,valeur)
-class InstanceVal(ListVal):pass
+class InstanceVal(ListVal):
+ def verif_item(self,valeur):
+ if not isinstance(valeur,self.aClass): return 0
+ return 1
class NoRepeat(ListVal):
+ def info(self):
+ return "pas de presence de doublon dans la liste"
+
+ def verif_item(self,valeur):
+ return 1
+
def get_into(self,liste_courante=None,into_courant=None):
"""
Methode get_into spécifique pour validateur NoRepeat
return liste_choix
class OrdList(ListVal):
+ def verif_item(self,valeur):
+ return 1
+
def get_into(self,liste_courante=None,into_courant=None):
"""
Methode get_into spécifique pour validateur OrdList