00001 00004 #ifndef BPSFIELDVALIDATOR_H 00005 #define BPSFIELDVALIDATOR_H 00006 00007 #include "bpscore_global.h" 00008 #include <QVariant> 00009 00010 class BpsDatastore; 00011 00015 class BPSCORE_EXPORT BpsFieldValidator 00016 { 00017 BPS_PRIVATE(BpsFieldValidator) 00018 00019 public: 00023 enum Status { 00024 StatusOK, 00025 StatusMissing, 00026 StatusInvalid, 00027 StatusDuplicate, 00028 StatusBadRef, 00029 StatusNotPositive, 00030 StatusUnknown 00031 }; 00032 00037 BpsFieldValidator(BpsDatastore* aDatastore, const QString& aTable); 00038 00039 ~BpsFieldValidator(); 00040 00048 bool checkInsert(const QVariantMap& aValues); 00049 00057 bool checkUpdate(const QVariantMap& aValues); 00058 00066 bool checkDelete(const QVariantMap& aValues); 00067 00071 Status lastStatus() const; 00072 00076 QString lastColumn() const; 00077 00083 virtual QString message(Status aStatus); 00084 }; 00085 00086 #endif // BPSFIELDVALIDATOR_H