// Aprica2
// copyright Pirmin Braun 1997-2007 - pirmin@pirmin.de
// all Rights reserved;
#import "Aprica.h"
// entspricht in etwas einem EOGenericRecord;
// hat aber noch die oldValues f. undo u. sparsames update;
// kann einen subset der Attribute halten, z.B. nur key u. descri
// muss nicht mehr gecached werden u. uebernimmt mithin Aufgaben der frueheren Dictionaries
// im Vergleich zu frueherem PBEO sehr leichtgewichtig
// custom Funktionalitaet in custom-EO-Handler ebenfalls auf Server
// Sourcen muessen nicht mehr generiert werden;
// PBEOs haben keine Sortorder mehr, sondern werden von PBWOEditor sortiert
// nach update kommen oldValues in changedValues, um feststellen zu koennen, was sich geaendert hat
@interface PBEO:NSObject <NSCoding>
{ NSString *entityName;
NSString *descri; //wird on demand gefuellt
NSMutableDictionary *values,*oldValues,*changedValues;
BOOL wasFetched; //gesetzt, wenn gefetched wurde; nur dann werden oldValues gefuehrt
PBDDTable *myTable;
NSString *pidimagefnJpg;
BOOL isCheckedPBEO; //Temporary state for PBWOEditor for selected EO's.
NSString *eoColor; // fuer Anzeige in Tableview
}
// Accessor
ACCESSClassh(myTable, setMyTable,PBDDTable)
ACCESSh(entityName, setEntityName)
ACCESSh(primaryKey, setPrimaryKey) //primaryKey on demand gepuffert
ACCESSh(descri, setDescri) //descri on demand gepuffert
ACCESSh(eoColor, setEoColor)
ACCESSh(pidimagefnJpg, setPidimagefnJpg)
+ (NSDictionary *)knownKeys;
- (NSString *)pidImagePathForPrint;
- (Application *)application;
- (Session *)session;
- (NSString *)primaryKeyName; //shortcut
- (NSString *)descri; //shortcut
- (NSMutableDictionary *)values; //haelt Werte in dbFormat
- (NSMutableDictionary *)oldValues; //wird bei Bedarf erst alloziert u. haelt alte Werte
- (NSMutableDictionary *)changedValues;
- (BOOL)wasFetched;
- (void)setWasFetched:(BOOL)yn;
- (PBSQLQualifier *)pkq;
- (void)takeValuesOfSameNameFromEo:(PBEO *)eo;
- (void)takeValuesFromDictionaryToDuplicate:(NSDictionary *)d;
- (PBEO *)dot:(NSString *)relationName;
- (void)takeValues:(NSArray *)a1 forKeys:(NSArray *)a2;
- (PBEO *)selObj;
- (NSArray *)valuesArrayForKeys:(NSArray *)a;
- (NSArray *)valuesArrayForKeypaths:(NSArray *)a;
// Existenz
- initWithEntityName:(NSString *)en;
- (void)useValuesFromDictionary:(NSDictionary *)d;
- (PBEO *)eo_copy;
- (void)refetch;
// ascii-rep
- (NSString *)description;
// Vergleich
- (BOOL)isEqual:(id)anotherEO; //dasselbe
- (BOOL)isEqualTableAndPK:(id)anotherEO;
- (unsigned)hash;
// undo
- (void)undo; //aus oldValues in Values u. oldValues clearen
+ (NSArray *)eosFromString:(NSString *)contents;
- (void)encodeIntoString: (NSMutableString *)ms;
@end