Skip to content

Commit c3f4d18

Browse files
committed
Refactoring, embed benchmarking code
1 parent 6d0d0fa commit c3f4d18

File tree

6 files changed

+181
-0
lines changed

6 files changed

+181
-0
lines changed
989 KB
Binary file not shown.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4+
<modelVersion>4.0.0</modelVersion>
5+
<groupId>placeholder3</groupId>
6+
<artifactId>placeholder4</artifactId>
7+
<version>1.0</version>
8+
<description>POM was created from install:install-file</description>
9+
</project>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<metadata>
3+
<groupId>placeholder3</groupId>
4+
<artifactId>placeholder4</artifactId>
5+
<versioning>
6+
<release>1.0</release>
7+
<versions>
8+
<version>1.0</version>
9+
</versions>
10+
<lastUpdated>20250624105841</lastUpdated>
11+
</versioning>
12+
</metadata>
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*******************************************************************************
2+
* SPDX-License-Identifier: MPL-2.0
3+
* <p>
4+
* This Source Code Form is subject to the terms of the Mozilla
5+
* Public License, v. 2.0. If a copy of the MPL was not distributed
6+
* with this file, You can obtain one at
7+
* https://mozilla.org/MPL/2.0/.
8+
* <p>
9+
* Contributors:
10+
* @author Yannick Kraml
11+
* @author Kevin Feichtinger
12+
* <p>
13+
* Copyright 2023 Johannes Kepler University Linz
14+
* LIT Cyber-Physical Systems Lab
15+
* Copyright 2024 Karlsruhe Institute of Technology (KIT)
16+
* KASTEL - Dependability of Software-intensive Systems
17+
*******************************************************************************/
18+
package edu.kit.travart.dopler.plugin;
19+
20+
import at.jku.cps.travart.core.common.IBenchmarkingPlugin;
21+
import at.jku.cps.travart.core.common.IDeserializer;
22+
import at.jku.cps.travart.core.common.IModelTransformer;
23+
import at.jku.cps.travart.core.common.IPlugin;
24+
import at.jku.cps.travart.core.common.IPrettyPrinter;
25+
import at.jku.cps.travart.core.common.ISerializer;
26+
import at.jku.cps.travart.core.common.IStatistics;
27+
import at.jku.cps.travart.core.transformation.*;
28+
import edu.kit.travart.dopler.injection.Injector;
29+
import edu.kit.travart.dopler.transformation.DoplerBenchmarkingTransformer;
30+
import edu.kit.travart.dopler.transformation.Transformer;
31+
import edu.kit.dopler.model.Dopler;
32+
import org.pf4j.Extension;
33+
34+
import java.util.List;
35+
36+
/**
37+
* Implementation of {@link IPlugin} with the {@link Dopler} model as type variable.
38+
*/
39+
@Extension
40+
public class DoplerBenchmarkingPlugin implements IBenchmarkingPlugin<Dopler> {
41+
42+
private static final String ID = "dopler-dm-benchmarking-plugin";
43+
44+
private final Injector injector;
45+
46+
/**
47+
* Constructor of {@link DoplerBenchmarkingPlugin}:
48+
*/
49+
public DoplerBenchmarkingPlugin() {
50+
injector = new Injector();
51+
}
52+
53+
@Override
54+
public IModelTransformer<Dopler> getTransformer() {
55+
return injector.getInstance(Transformer.class);
56+
}
57+
58+
@Override
59+
public AbstractBenchmarkingTransformer<Dopler> getBenchmarkingTransformer() {
60+
return injector.getInstance(DoplerBenchmarkingTransformer.class);
61+
}
62+
63+
@Override
64+
public IDeserializer<Dopler> getDeserializer() {
65+
return injector.getInstance(DoplerDeserializer.class);
66+
}
67+
68+
@Override
69+
public IStatistics<Dopler> getStatistics() {
70+
throw new UnsupportedOperationException("Not implemented");
71+
}
72+
73+
@Override
74+
public ISerializer<Dopler> getSerializer() {
75+
return injector.getInstance(DoplerSerializer.class);
76+
}
77+
78+
@Override
79+
public IPrettyPrinter<Dopler> getPrinter() {
80+
return injector.getInstance(DoplerPrettyPrinter.class);
81+
}
82+
83+
@Override
84+
public String getName() {
85+
return "dopler";
86+
}
87+
88+
@Override
89+
public String getAbbreviation() {
90+
return "DOPLER";
91+
}
92+
93+
@Override
94+
public String getVersion() {
95+
return "2.0.1";
96+
}
97+
98+
@Override
99+
public String getId() {
100+
return ID;
101+
}
102+
103+
@Override
104+
public List<String> getSupportedFileExtensions() {
105+
return List.of(new CsvFormat().extension());
106+
}
107+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package edu.kit.travart.dopler.plugin;
2+
3+
import org.pf4j.Plugin;
4+
import org.pf4j.PluginWrapper;
5+
6+
public class DoplerPlugin extends Plugin {
7+
public DoplerPlugin(final PluginWrapper wrapper) {
8+
super(wrapper);
9+
}
10+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package edu.kit.travart.dopler.transformation;
2+
3+
import at.jku.cps.travart.core.common.IStatistics;
4+
import at.jku.cps.travart.core.exception.NotSupportedVariabilityTypeException;
5+
import de.vill.model.FeatureModel;
6+
import edu.kit.dopler.model.Dopler;
7+
import edu.kit.travart.dopler.transformation.decision.to.feature.DmToFmTransformer;
8+
import edu.kit.travart.dopler.transformation.feature.to.decision.FmToDmTransformer;
9+
import at.jku.cps.travart.core.transformation.*;
10+
11+
public class DoplerBenchmarkingTransformer extends AbstractBenchmarkingTransformer<Dopler> {
12+
13+
private final DmToFmTransformer dmToFmTransformer;
14+
private final FmToDmTransformer fmToDmTransformer;
15+
16+
/**
17+
* Constructor of {@link Transformer}.
18+
*
19+
* @param dmToFmTransformer {@link DmToFmTransformer}
20+
* @param fmToDmTransformer {@link FmToDmTransformer}
21+
*/
22+
public DoplerBenchmarkingTransformer(DmToFmTransformer dmToFmTransformer, FmToDmTransformer fmToDmTransformer) {
23+
this.dmToFmTransformer = dmToFmTransformer;
24+
this.fmToDmTransformer = fmToDmTransformer;
25+
}
26+
27+
@Override
28+
public Dopler transformInner(FeatureModel model, String modelName, STRATEGY strategy)
29+
throws NotSupportedVariabilityTypeException {
30+
return fmToDmTransformer.transform(model, strategy);
31+
}
32+
33+
@Override
34+
public FeatureModel transformInner(Dopler model, String modelName, STRATEGY strategy)
35+
throws NotSupportedVariabilityTypeException {
36+
return dmToFmTransformer.transform(model, strategy);
37+
}
38+
39+
@Override
40+
public IStatistics<Dopler> getTargetStatistics() {
41+
throw new UnsupportedOperationException("Not implemented");
42+
}
43+
}

0 commit comments

Comments
 (0)