1 | Assemblies:
|
---|
2 | - HeuristicLab.JsonInterface
|
---|
3 | - HeuristicLab.JsonInterface.App (Application fÃŒr das AusfÃŒhren von Template-Konfig Kombinationen auf der Kommandozeile)
|
---|
4 | - HeuristicLab.JsonInterface.OptimizerIntegration (Importer/Exporter fÃŒr Templates aus dem Optimizer)
|
---|
5 |
|
---|
6 | eigenen Converter erstellen:
|
---|
7 | - IJsonItemConverter implementieren (oder von BaseConverter ableiten)
|
---|
8 | - "Priority", "ConvertableType" Eigenschaften und "Inject", "Extract" Methoden implementieren
|
---|
9 | - Converter werden zur Laufzeit gesucht (also egal in welchen Assembly der Converter existiert)
|
---|
10 | - es wird immer der Converter mit der höchsten PrioritÀt ausgewÀhlt ( = höchste Zahl)
|
---|
11 | - fÃŒr die Eigenschaft "ConvertableType" kann mit HEAL.Attic der Typ gefunden werden
|
---|
12 | - WICHTIG: immer den "Root"-Converter bei verschachtelte Converter-Aufrufe weiterreichen (verhindert Schleifen bei entsprechende Objektgraphen)
|
---|
13 |
|
---|
14 |
|
---|
15 | eigenes JsonItem erstellen:
|
---|
16 | - IJsonItem implementieren (oder von einer abstrakten JsonItem-Klasse ableiten)
|
---|
17 | - fÃŒr De-/Serialisierung die Methoden "GenerateJObject" (Serialisierung) und "SetJObject" (Deserialisierung) ÃŒberschreiben
|
---|
18 | - fÃŒr die Validierung (ob z.B.: der Wert eines Items korrekt ist) die Methode "Validate" ÃŒberschreiben
|
---|
19 |
|
---|
20 | Ablauf:
|
---|
21 | 1. Suche nach Convertern (bei der Initialisierung)
|
---|
22 | 2. passender Converter wird fÌr ein IItem ausgewÀhlt
|
---|
23 | 3. IItem wird dem Converter ÃŒbergeben (Extract/Inject)
|
---|
24 | 4. bei Extract wird ein JsonItem-Baum zurÃŒckgegeben
|
---|
25 |
|
---|
26 |
|
---|
27 | JCGenerator (Name nicht final):
|
---|
28 | - erzeugt Templates von einem "IOptimizer"-Objektes
|
---|
29 | - ACHTUNG: Templates bestehen immer aus zwei Files (.json, .hl)
|
---|
30 |
|
---|
31 | JsonTemplateInstantiator:
|
---|
32 | - erzeugt ein "IOptimizer"-Objekt aus einem Template (und gegebenfalls einer dazugehörigen konkreten Konfiguration)
|
---|
33 |
|
---|
34 |
|
---|
35 | CLI Verwendung:
|
---|
36 | - HeuristicLab 3.3.exe /start:JsonInterface <Template-Pfad> <Konfig-Pfad> <Ausgabe-Pfad>
|
---|
37 | - in Konfig können Parameter des Templates direkt eingefÌgt und verÀndert werden
|
---|
38 | - "Results" werden bei der Template Erzeugung erst erkannt wenn auch bereits Werte in "Results" enthalten sind |
---|