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+ }
0 commit comments