Also auf jeden Fall würde ich mir ein Repository anlegen, von wo aus ich auf den Kontext zugreifen kann.
Delphi-Quellcode:
TDataContext = class
private
FIdent: Integer;
FText: string;
public
constructor Create( Ident: Integer; const Text: string );
function ToString: string; override;
property Ident: Integer read FIdent;
property Text: string read FText;
end;
IDataContextRepository = interface
function Find( Ident : Integer ) : TDataContext;
end;
Wenn an dem Datenkontext jetzt auch noch fest der Datentyp der Eingabe festgemacht werden kann, dann haue ich den auch noch dazu. Daraus kann ich mir dann die passende Datenklasse zusammenbauen und den Wert dort hineinlegen.
Delphi-Quellcode:
TDataValue = class abstract
private
FDataContext: TDataContext;
public
constructor Create( DataContext: TDataContext );
property DataContext: TDataContext read FDataContext;
end;
TDataValueClass = class of TDataValue;
TDataValue<T> = class( TDataValue )
private
FValue: T;
public
property Value: T read FValue write FValue;
end;
Und so geht man Schritt für Schritt weiter bis man die gesamte Struktur logisch abgebildet hat. Dann baut man sich noch einen Importer/Exporter für die benötigten Datenformate (Text,
XML,
HTML, Datenbank) und jagt das da einfach durch.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)