[17483] | 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 |
---|