def validate(self, value):
if not isinstance(value, (str, unicode)):<EOL><INDENT>raise orb.errors.ColumnValidationError(self, '<STR_LIT>')<EOL><DEDENT>elif not self.__allowUnicode and value != projex.text.toAscii(value):<EOL><INDENT>raise orb.errors.ColumnValidationError(self, '<STR_LIT>')<EOL><DEDENT>elif len(value) < self.__minlength or(self.__requireUppercase and not re.search('<STR_LIT>', value)) or(self.__requireLowercase and not re.search('<STR_LIT>', value)) or(self.__requireNumber and not re.search('<STR_LIT>', value)) or(self.__requireWildcard and not re.search('<STR_LIT>', value)):<EOL><INDENT>raise orb.errors.ColumnValidationError(self, self.rules())<EOL><DEDENT>elif self.__invalidCharacters and re.search(self.__invalidCharacters, value):<EOL><INDENT>raise orb.errors.ColumnValidationError(self, self.__invalidCharactersRule)<EOL><DEDENT>else:<EOL><INDENT>return super(PasswordColumn, self).validate(value)<EOL><DEDENT>
Ensures that the password follows the following criteria:

:param value: <str>

:return: True