PBSmallObjects.h


max21 Unternehmensgruppe
//	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
Foto