diff --git a/components/bpmn-q/modeler-component/extensions/pattern/replacement/PatternTransformator.js b/components/bpmn-q/modeler-component/extensions/pattern/replacement/PatternTransformator.js index 45c92f8c..b9d84a58 100644 --- a/components/bpmn-q/modeler-component/extensions/pattern/replacement/PatternTransformator.js +++ b/components/bpmn-q/modeler-component/extensions/pattern/replacement/PatternTransformator.js @@ -22,6 +22,7 @@ import { replaceErrorCorrectionPattern } from "./correction/ErrorCorrectionPatte import { replaceMitigationPattern } from "./mitigation/MitigationPatternHandler"; import { attachPatternsToSuitableConstruct, + getSolutionForPattern, removeAlgorithmAndAugmentationPatterns, } from "../util/PatternUtil"; import { findOptimizationCandidates } from "../../quantme/ui/adaptation/CandidateDetector"; @@ -156,6 +157,12 @@ export async function startPatternReplacementProcess(xml) { ); for (let replacementConstruct of augmentationReplacementConstructs) { + console.log("Replacing augmentation pattern: ", replacementConstruct); + + // retrieve solution for pattern to enable correct configuration + let concreteSolution = getSolutionForPattern(replacementConstruct.id); + console.log("Solution: ", concreteSolution); + let replacementSuccess = false; if (replacementConstruct.task.$type === constants.CIRCUIT_CUTTING) { let { replaced, flows, pattern } = await replaceCuttingPattern( diff --git a/components/bpmn-q/modeler-component/extensions/pattern/resources/pattern4bpmn.json b/components/bpmn-q/modeler-component/extensions/pattern/resources/pattern4bpmn.json index 5528735c..aa1251c4 100644 --- a/components/bpmn-q/modeler-component/extensions/pattern/resources/pattern4bpmn.json +++ b/components/bpmn-q/modeler-component/extensions/pattern/resources/pattern4bpmn.json @@ -8,98 +8,104 @@ "types": [ { "name": "QuantumKernelEstimator", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "AlternatingOperatorAnsatz", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "QuantumApproximateOptimizationAlgorithm", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "QuantumPhaseEstimation", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "VariationalQuantumAlgorithm", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "VariationalQuantumEigensolver", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "OrchestratedExecution", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "PredeployedExecution", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "PrioritizedExecution", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "ErrorCorrection", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "GateErrorMitigation", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "ReadoutErrorMitigation", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "WarmStart", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "BiasedInitialState", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "ChainedOptimization", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "VariationalParameterTransfer", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "PreTrainedFeatureExtractor", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "CircuitCutting", - "superClass": ["bpmn:BoundaryEvent"], + "superClass": ["pattern:Pattern"], "properties": [] }, { "name": "Pattern", "superClass": ["bpmn:BoundaryEvent"], - "properties": [] + "properties": [ + { + "name": "PatternId", + "isAttr": true, + "type": "String" + } + ] } ], "enumerations": [], diff --git a/components/bpmn-q/modeler-component/extensions/pattern/util/PatternUtil.js b/components/bpmn-q/modeler-component/extensions/pattern/util/PatternUtil.js index 648aec82..cbe92d21 100644 --- a/components/bpmn-q/modeler-component/extensions/pattern/util/PatternUtil.js +++ b/components/bpmn-q/modeler-component/extensions/pattern/util/PatternUtil.js @@ -261,3 +261,15 @@ export function removeAlgorithmAndAugmentationPatterns( } } } + +/** + * Get the solution for the given pattern + * + * @param id the ID of the solution to retrieve the pattern for + */ +export function getSolutionForPattern(id) { + console.log("Retrieving solution for pattern with ID: ", id); + + // TODO + return undefined; +}