// Aprica2
// copyright Pirmin Braun 1997-2007 - pirmin@pirmin.de
// all Rights reserved;
#import "Aprica.h"
@interface PBVLO:NSObject
{ NSString *value,*bez0,*bez1;
}
ACCESSh(value, setValue)
ACCESSh(bez0, setBez0)
ACCESSh(bez1, setBez1)
- (NSString *)bez;
+ (PBVLO *)pbvloWithValue:(NSString *)v bez0:(NSString *)b0 bez1:(NSString *)b1;
@end
@interface PBActionO:NSObject
{ NSString *name;
NSString *guiName;
}
+ (PBActionO *)actionWithName:(NSString *)v_name gui:(NSString *)v_gui;
ACCESSh(name, setName)
ACCESSh(guiName, setGuiName)
@end
@interface PBStringWrapper:NSObject
{ NSString *string;
}
+ (PBStringWrapper *)stringWrapperWithString:(NSString *)s;
ACCESSh(string,setString);
@end
@interface PBWOTVCCol : NSObject
{ PBWOAsso *cAsso,*eAsso;
int width;
int tvNewSortMode;
NSString *columnTitle;
}
ACCESSClassh(eAsso,setEAsso,PBWOAsso)
ACCESSh(columnTitle,setColumnTitle);
- initWithWOAsso:(PBWOAsso *)wa;
- (PBWOAsso *)cAsso;
- (int)width;
- (void)setWidth:(int)i;
- (void)tvNewResetSortMode;
- (NSString *)tvNewGuiNameSort;
- (int)tvNewSortMode;
- (void)setTvNewSortMode:(int)sm;
- (NSString *)dbName;
@end
@interface BLZRecord : NSObject
{ int blz;
NSString *suchstring,*institut,*ort,*pruefzifferverfahren;
}
ACCESSh(suchstring,setSuchstring);
ACCESSh(institut,setInstitut);
ACCESSh(pruefzifferverfahren,setPruefzifferverfahren);
ACCESSh(ort,setOrt);
- (int)blz;
- (BOOL)matches:(NSString *)s;
- initWithBLZ4row:(NSString *)s;
- initWithBLZ5row:(NSString *)s;
@end
@interface Foreach : NSObject
{ int index;
NSArray *a;
NSString *indexName,*itemName;
}
ACCESSh(indexName,setIndexName);
ACCESSh(itemName,setItemName);
ACCESSClassh(a,setA,NSArray);
- (int)index;
- (void)setIndex:(int)i;
@end
@interface TerminO : NSObject
{ NSString *termin,*terminv,*terminb,*terminzeit,*terminzeitv,*terminzeitb,*beschreibung,*descri,*stichworte;
int prio,status;
BOOL abhaengig;
BOOL wiedervorlage,privat;
PBEO *coveredEO,*owner,*empfaenger,*resource;
}
ACCESSh(descri,setDescri)
ACCESSh(termin,setTermin) // zum Einsortieren
ACCESSh(terminv,setTerminv) // f. Anzeige
ACCESSh(terminb,setTerminb) // f. Anzeige
ACCESSh(beschreibung,setBeschreibung)
ACCESSh(stichworte,setStichworte)
ACCESSh(terminzeit,setTerminzeit)
ACCESSh(terminzeitv,setTerminzeitv)
ACCESSh(terminzeitb,setTerminzeitb)
ACCESSClassh(coveredEO,setCoveredEO,PBEO)
ACCESSClassh(owner,setOwner,PBEO)
ACCESSClassh(empfaenger,setEmpfaenger,PBEO)
ACCESSClassh(resource,setResource,PBEO)
- (void)setPrio:(int)i;
- (void)setStatus:(int)i;
- (void)setAbhaengig:(BOOL)yn;
- (void)setWiedervorlage:(BOOL)yn;
- (int)prio;
- (BOOL)isHighPrio;
- (int)status;
- (BOOL)abhaengig;
- (BOOL)wiedervorlage;
- (void)setPrivat:(BOOL)yn;
- (BOOL)privat;
- (NSString *)privatS;
- (NSString *)statusIconName;
- (NSString *)statusName;
- (NSString *)zeit;
- (NSString *)wiedervorlageS;
@end
#define XMLObjectTyp_Element 0
#define XMLObjectTyp_Container 1
@interface XMLObject : NSObject
{ NSString *name,*content;
int typ; // element, container
NSMutableArray *children;
XMLObject *parent; // nicht retainen wg. retaincycle in children
NSMutableArray *ma;
NSMutableDictionary *md;
}
ACCESSh(name,setName)
ACCESSh(content,setContent)
ACCESSClassh(parent,setParent,XMLObject)
+ (XMLObject *)xmlObjectWithName:(NSString *)v;
- (NSMutableArray *)ma;
- (NSMutableDictionary *)md;
- (int)typ;
- (void)setTyp:(int)i;
- (NSMutableArray *)children;
- (BOOL)determineConreteContainer;
- (void)addToConcreteContainer:(XMLObject *)o;
// den Baum navigieren; erinnert an IMS 1.3
- (NSArray *)childrenNames;
- (NSArray *)childrenWithName:(NSString *)s;
@end
#define PBSQLQplain 1
#define PBSQLQand 2
#define PBSQLQor 3
#define PBSQLQnothing 4
#define PBSQLQall 5
@interface PBSQLQualifier:NSObject
{ NSString *string;
int typ;
NSMutableArray *qualifiers;
}
- (int)typ;
- (void)setTyp:(int)i;
ACCESSh(string,setString);
+ (PBSQLQualifier *)nothingQualifier;
+ (PBSQLQualifier *)allQualifier;
+ (PBSQLQualifier *)orQualifier;
+ (PBSQLQualifier *)andQualifier;
+ (PBSQLQualifier *)qualifierWithString:(NSString *)s;
+ (PBSQLQualifier *)orQualifierWithArray:(NSArray *)a;
+ (PBSQLQualifier *)andQualifierWithArray:(NSArray *)a;
- (void)addQualifier:(PBSQLQualifier *)q;
- (void)addQualifiers:(NSArray *)a;
+ (PBSQLQualifier *)pkOrQualiFromEOArray:(NSArray *)a;
+ (PBSQLQualifier *)orQualiFromArray:(NSArray *)a forDbName:(NSString *)s;
+ (PBSQLQualifier *)qualifierFromKn:(NSString *)keyName keyValue:(NSString *)keyValue;
@end
@interface PBWOEditorState : NSObject
{ NSMutableArray *ma;
int maOffset,countCombinedQ;
PBSQLQualifier *lastCombinedQ;
}
ACCESSClassh(lastCombinedQ, setLastCombinedQ, PBSQLQualifier);
- (NSMutableArray *)ma;
- (int)maOffset;
- (void)setMaOffset:(int)i;
- (int)countCombinedQ;
- (void)setCountCombinedQ:(int)i;
+ (PBWOEditorState *)stateOf:(PBWOEditor *)e;
- (void)updateStateFrom:(PBWOEditor *)e;
@end
@interface PBSortOrdering:NSObject
{ SEL _selector;
NSString *_key;
}
+ (PBSortOrdering *)sortOrderingWithKey:(NSString *)key selector:(SEL)selector;
- initWithKey:(NSString *)key selector:(SEL)selector;
- (NSString *)key;
- (SEL)selector;
@end
// Formatierung f. & 1 << ...
enum OP_f { OP_f_guidate,
OP_f_dblquote,
OP_f_guiint,
OP_f_guiintnd,
OP_f_guimoney,
OP_f_guif1,
OP_f_guif3,
OP_f_week,
OP_f_weekyear,
OP_f_year,
OP_f_yy,
OP_f_month,
OP_f_wdayn,
OP_f_lit, // konstanter content
OP_f_rnd2,
OP_f_lc,
OP_f_uc,
OP_f_trans,
OP_f_rnd1,
OP_f_f1nd,
OP_f_f2nd,
OP_f_f3nd,
OP_f_flr,
OP_f_ceil,
OP_f_trim, // linksb. kappen
OP_f_str, // rechtsb. money, bei bedarf links mit spaces auffuellen
OP_f_strs, // rechtsb. string, bei bedarf links mit spaces auffuellen
OP_f_stl // linksb. string, bei bedarf rechts mit spaces auffuellen
};
// Opcodes
enum OPC { OPC_debug_start,
OPC_debug_end,
OPC_NOP,
OPC_ERR,
OPC_Z_spf,
OPC_Z_set,
OPC_Z_set_formatted,
OPC_Z_a,
OPC_Z_au,
OPC_Z_ah,
OPC_Z_cat,
OPC_Z_find,
OPC_Z_ss,
OPC_Z_geteopkvalue,
OPC_Z_geteoq,
OPC_Z_geteoqf,
OPC_Z_geteosq,
OPC_Z_geteosqf,
OPC_Z_geteosqsoa,
OPC_Z_soafrom,
OPC_Z_newfile,
OPC_Z_neweo,
OPC_Z_newstring,
OPC_Z_newdata,
OPC_Z_newarraye,
OPC_Z_newarray,
OPC_Z_class,
OPC_Z_newdict,
OPC_Z_newset,
OPC_Z_count,
OPC_Z_oai,
OPC_Z_ofk,
OPC_Z_css,
OPC_Z_cjs,
OPC_Z_cai,
OPC_Z_allk,
OPC_Z_description,
OPC_Z_modul,
OPC_Z_allv,
OPC_Z_q,
OPC_Z_qand,
OPC_Z_qor,
OPC_Z_allq,
OPC_Z_nothingq,
OPC_Z_setfetchcond,
OPC_Z_nextmdforhandle,
OPC_Z_nexteoforhandle,
OPC_Z_swcof,
OPC_Z_attributes,
OPC_Z_lookup,
OPC_Z_singlevaluesql,
OPC_Z_singlerecordsql,
OPC_Z_arraysql,
OPC_Z_arraysqls,
OPC_Z_nowformat,
OPC_Z_tablenamed,
OPC_Z_dplus,
OPC_Z_dminus,
OPC_Z_dd,
OPC_Z_plus,
OPC_Z_minus,
OPC_Z_mal,
OPC_Z_geteilt,
OPC_Z_modulo,
OPC_Z_ml,
OPC_lookupbegin,
OPC_matrixbegin,
OPC_say,
OPC_sayw,
OPC_updat_eo,
OPC_delet_eo,
OPC_insrt_eo,
OPC_system,
OPC_suchexternal,
OPC_executestring,
OPC_execute,
OPC_log,
OPC_logi,
OPC_logs,
OPC_diaconfirm,
OPC_diaalert,
OPC_gosub,
OPC_endsub,
OPC_sub,
OPC_return,
OPC_rao,
OPC_rofk,
OPC_sort,
OPC_roai,
OPC_ioai,
OPC_wtf,
OPC_invk,
OPC_foreach,
OPC_continuefor,
OPC_breakfor,
OPC_endfor,
OPC_end,
OPC_if,
OPC_else,
OPC_endif,
OPC_while,
OPC_continue,
OPC_break,
OPC_endwhile,
OPC_dbnr,
OPC_autorelease,
OPC_lang,
OPC_fieldon,
OPC_fieldoff,
OPC_markerror,
OPC_optionstd,
OPC_optionadd,
OPC_optionrem,
OPC_allfieldson,
OPC_allfieldsoff,
OPC_allfieldsvisible,
OPC_fieldvisible,
OPC_fieldinvisible,
OPC_registerinvisible,
OPC_registervisible,
OPC_createbutton,
OPC_duplicatebutton,
OPC_deletebutton,
OPC_sql,
OPC_pdf_pages,
OPC_pdf_newpageqm,
OPC_pdf_newpagequer,
OPC_pdf_newpagea5quer,
OPC_pdf_newpagewh,
OPC_pdf_newpage,
OPC_pdf_lsn,
OPC_pdf_scale,
OPC_pdf_o,
OPC_pdf_f,
OPC_pdf_s,
OPC_pdf_lc,
OPC_pdf_lcrgb,
OPC_pdf_lc255,
OPC_pdf_lchex,
OPC_pdf_fcrgb,
OPC_pdf_fc255,
OPC_pdf_fchex,
OPC_pdf_lw,
OPC_pdf_ls,
OPC_pdf_fc,
OPC_pdf_rf,
OPC_pdf_rl,
OPC_pdf_kf,
OPC_pdf_kl,
OPC_pdf_lvb,
OPC_pdf_l,
OPC_pdf_print,
OPC_pdf_printb,
OPC_pdf_v,
OPC_pdf_vc,
OPC_pdf_vw,
OPC_pdf_render,
OPC_pdf_dont_render,
OPC_pdf_ub,
OPC_pdf_ue,
OPC_pdf_b,
OPC_pdf_bf,
OPC_pdf_dg,
OPC_pdf_g,
OPC_pdf_gh
};
enum CMP { CMP_in,
CMP_eq,
CMP_ne,
CMP_prefix,
CMP_suffix,
CMP_filled,
CMP_fillednum,
CMP_exists,
CMP_contains,
CMP_like,
CMP_equals,
CMP_gt,
CMP_lt,
CMP_ge,
CMP_le
};
enum TGT_ds { TGT_ds_vardict,
TGT_ds_localvardict,
TGT_ds_datasource
};
#define HAS_EFLAG(expr,flagnumber) ((expr & (1 << flagnumber))!=0)
#define SET_EFLAG(expr,flagnumber) (expr |= (1 << flagnumber))
#define HAS_FFLAG(flagnumber) (HAS_EFLAG(formatting,flagnumber))
#define SET_FFLAG(flagnumber) (SET_EFLAG(formatting,flagnumber))
@interface PBExpression:NSObject
{ NSMutableArray *subExpressions,*operators;
NSString *content;
}
ACCESSh(content,setContent);
+ (PBExpression *)expressionFromString:(NSString *)s;
- (NSObject *)valueForDatasource:(PBWOEditor *)datasource varDict:(NSMutableDictionary *)varDict localVarDict:(NSMutableDictionary *)localVarDict;
- (NSArray *)subExpressions;
- (NSArray *)operators;
@end
@interface PBOperand:NSObject
{ enum OP_f formatting; // formatierung
unsigned int trim; // abschneiden
NSString *content;
PBExpression *expr; // wird gesetzt, wenn zusammengesetzte Expression; sonst nur content;
}
ACCESSh(content,setContent);
ACCESSClassh(expr,setExpr,PBExpression);
+ (PBOperand *)operandFromString:(NSString *)s;
+ (PBOperand *)operandWithConstantObject:(NSObject *)o;
- (NSObject *)valueForDatasource:(PBWOEditor *)datasource varDict:(NSMutableDictionary *)varDict localVarDict:(NSMutableDictionary *)localVarDict;
- (enum OP_f)formatting; // formatierung
- (BOOL)isConstant;
@end
@interface PBStatement:NSObject
{ enum OPC opcode;
int branch; // sprungziel bei if,while,foreach, sub
enum CMP comparison; // vergleichsoperator bei if, while
BOOL negate;
NSMutableArray *operands;
PBOperand *op1,*op2,*op3,*op4; // f. schnellen Zugriff
NSString *line; // orig. line
NSString *error; // beim analysieren festegestellter fehler
NSString *target; // eines Zusweisungsbefehls
NSString *targetFull; // inkl. Datasource-Marker $,%
enum TGT_ds target_ds; // bei Zuweisungsbefehlen
unsigned int srclnr; // source line number
}
ACCESSClassh(op1,setOp1,PBOperand);
ACCESSClassh(op2,setOp2,PBOperand);
ACCESSClassh(op3,setOp3,PBOperand);
ACCESSClassh(op4,setOp4,PBOperand);
ACCESSh(line,setLine);
ACCESSh(error,setError);
ACCESSh(target,setTarget);
ACCESSh(targetFull,setTargetFull);
- (enum OPC)opcode;
- (void)setOpcode:(enum OPC)opc;
- (enum TGT_ds)target_ds;
- (void)setTarget_ds:(enum TGT_ds)tgt_ds;
- (NSMutableArray *)operands;
- (BOOL)negate;
+ (PBStatement *)statementFromLine:(NSString *)s;
- (int unsigned)srclnr;
- (void)setSrclnr:(int unsigned)i;
- (int)branch;
- (void)setBranch:(int)i;
- (NSString *)htmlDescription;
@end