unit BusinessObjects; interface uses MVCFramework.Serializer.Commons; type TBaseBO = class private FID: Integer; procedure SetID(const Value: Integer); public procedure CheckInsert; virtual; procedure CheckUpdate; virtual; procedure CheckDelete; virtual; property ID: Integer read FID write SetID; end; [MVCNameCase(ncLowerCase)] TArticle = class(TBaseBO) private FPrice: Currency; FCode: string; FDescription: string; procedure SetCode(const Value: string); procedure SetDescription(const Value: string); procedure SetPrice(const Value: Currency); public procedure CheckInsert; override; procedure CheckUpdate; override; procedure CheckDelete; override; [MVCColumn('CODICE')] property Code: string read FCode write SetCode; [MVCColumn('DESCRIZIONE')] property Description: string read FDescription write SetDescription; [MVCColumn('PREZZO')] property Price: Currency read FPrice write SetPrice; end; implementation uses System.SysUtils; { TBaseBO } procedure TBaseBO.CheckDelete; begin end; procedure TBaseBO.CheckInsert; begin end; procedure TBaseBO.CheckUpdate; begin end; procedure TBaseBO.SetID(const Value: Integer); begin FID := Value; end; { TArticolo } procedure TArticle.CheckDelete; begin inherited; // if Price > 0 then // raise Exception.Create('Cannot delete an article with a price greater than 0 (yes, it is a silly check)'); end; procedure TArticle.CheckInsert; begin inherited; if length(Code) < 3 then raise Exception.Create('Article code cannot be less than 3 chars'); end; procedure TArticle.CheckUpdate; begin inherited; if length(Code) < 3 then raise Exception.Create('Article code cannot be less than 3 chars'); end; procedure TArticle.SetCode(const Value: string); begin FCode := Value; end; procedure TArticle.SetDescription(const Value: string); begin FDescription := Value; end; procedure TArticle.SetPrice(const Value: Currency); begin FPrice := Value; end; end.