//	IntarS
//	copyright Pirmin Braun 1997-2006 - pirmin@pirmin.de
//	all Rights reserved;
#import  "IntarS.h"


@interface Application (DB)
- (NSString *)attributAuflistungForTable:(PBDDTable *)t withDoku:(BOOL)withDoku;
- (NSString *)descriForEn:(NSString *)en pk:(NSString *)pk;

//sequential access
- (BOOL)setFetchCond:(EOQualifier *)q forEN:(NSString *)entityName soa:(NSArray *)soa handle:(NSString *)handle;
- (BOOL)setFetchCond:(EOQualifier *)q forTable:(PBDDTable *)table soa:(NSArray *)soa handle:(NSString *)handle;
- (NSMutableDictionary *)nextMDForHandle:(NSString *)handle;
- (PBEO *)nextEOForHandle:(NSString *)handle;
- (void)endFetchingForHandle:(NSString *)handle;
- (void)addFetchRequest:(NSDictionary *)fetchReq forHandle:(NSString *)handle;
- (NSDictionary *)fetchReqForHandle:(NSString *)handle;

//	Lock
- (BOOL)unlockTables;
- (BOOL)lockTables:(NSString *)tableList;

//channelpool verwaltung
- (void)closeAllChannels;
- (PBMySQLChannel*)freshChannel;
- (BOOL)establishConnection;

//	EO-Umformungen
- (PBEO *)eoFromDict:(NSDictionary *)d entityName:(NSString *)entityName;
- (NSDictionary *)dictFromEO:(PBEO *)eo forKeys:(NSDictionary *)keyDict;
- (NSMutableDictionary *)dictFromString:(NSString *)s table:(PBDDTable *)t;

//Basic-Methode f. EOs holen;
- (NSArray *)getBasicEOs:(EOQualifier *)q entityName:(NSString *)entityName offset:(int)offset count:(int)count soa:(NSArray *)soa;
- (NSArray *)getEOs:(NSString *)entityName qualifier:(EOQualifier *)q offset:(int)offset count:(int)count soa:(NSArray *)soa;
- (BOOL)refetchEO:(PBEO *)eo;
- (PBEO *)eoOfRelation:(NSString *)s forEo:(PBEO *)eo;

//	keyVergabe
- (PBEO *)newAutoNumberEntryForTableNamed:(NSString *)entityName withLastKey:(BOOL)withLastKey;
- (NSString *)lastKeyForTableNamed:(NSString *)entityName; //letzer bisher vergebener Key

//	Grundoperationen
- (unsigned)evaluateSQL:(NSString *)s;
- (NSString *)getSingleValueAsResultFrom:(NSString *)s;
- (NSArray *)positionenFor:(PBEO *)k1 posEn:(NSString *)posEn;
- (void)copyPosFrom:(PBEO *)k1 to:(PBEO *)k2 posEn:(NSString *)posEn;
- (BOOL)insertEO:(PBEO *)eo;
- (BOOL)deleteEOsQ:(EOQualifier *)q entityName:(NSString *)en;
- (BOOL)deleteEOs:(NSArray *)a;
- (BOOL)deleteEO:(PBEO *)eo;
- (BOOL)updateEO:(PBEO *)eo;
- (PBEO *)createEOforEN:(NSString *)entityName;

//	SQL-gen
- (NSString *)whereClauseFrom:(EOQualifier *)q forTable:(PBDDTable *)t;
- (NSString *)orderbyClauseFrom:(NSArray *)soa forTable:(PBDDTable *)t;
- (NSString *)wildCardStringFrom:(NSString *)s;
- (NSMutableString *)sqlValuesStringFromDict:(NSDictionary *)d forTable:(PBDDTable *)t;
- (NSDictionary *)getDictAsResultFrom:(NSString *)s;
- (NSArray *)getStringArrayAsResultFrom:(NSString *)s;
- (NSArray *)getArrayAsResultFrom:(NSString *)s;
- (NSString *)sqlStringFor:(PBDate *)pbd;
- (NSString *)sqlFormatCt:(PBDDTable *)t;
- (NSString *)sqlFormatCt:(PBDDTable *)t tn:(NSString *)tn temp:(BOOL)temp;
- (NSString *)sqlFormatCANew:(PBDDAttribute *)pba;

- (void)sqlRunStatement:(NSString *)s withFetch:(BOOL)yn;

// Unicode Font
- (void)readArialuni_cmap;
- (void)readArialuni_hmtx;
- (NSString *)cidStringFrom:(NSString *)s;
- (unsigned short)cidForUnichar:(unichar)uni;
- (unsigned short)widthForCid:(unsigned short)cid;
- (unsigned short)widthForUnichar:(unichar)uni;

// enhanced
- (NSArray *)referencingEO:(PBEO *)eo;

@end


@interface Application (CEOH)
- (void)helementv3_genPrimKey:(PBEO *)eo inParentEO:(PBEO *)peo;

- (BOOL)document_isJpg:(PBEO *)document;

- (NSString *)zuordnungen_establishZuord:(PBEO *)eo1 :(PBEO *)eo2 grund:(NSString *)grund inc:(BOOL)inc bemerk:(NSString *)bemerk;
- (NSArray *)zuordnungen_establishArrayZuord:(NSArray *)a1 :(NSArray *)a2 grund:(NSString *)grund inc:(BOOL)inc bemerk:(NSString *)bemerk;

- (void)gruppenstringToFlags:(PBEO *)eo;
- (void)flagsToGruppenstring:(PBEO *)eo;

@end

@interface Application (Webpublishing)
- (void)publish;
- (NSString *)titleFromFn:(NSString *)fn;
- (NSString *)urlFromCompleteFn:(NSString *)completeFn;
- (NSString *)navLinesFor:(PBEO *)eo;
- (NSString *)navLinkFor:(PBEO *)navEO eo:(PBEO *)eo;
@end

@interface Application (XML)
- (NSString *)encodeObject:o withDocType:(NSString *)docType;
- (void)encodeDictionary:(NSDictionary *)d inXML:(NSMutableString *)ms forName:(NSString *)s nestingLevel:(int)nl;
- (void)encodeArray:(NSArray *)a inXML:(NSMutableString *)ms forName:(NSString *)s nestingLevel:(int)nl;
- (id)objectFromXML:(NSString *)xml;
- (NSData *)httpGet:(NSString *)uri host:(NSString *)host;
- (NSData *)httpPost:(NSString *)uri host:(NSString *)host soa:(NSString *)soa parm:(NSDictionary *)parm docType:(NSString *)docType;
@end

