Skip to content

Commit 9ded72c

Browse files
committed
Add attribute selection, discovery and time limit CLI options
1 parent 28408bf commit 9ded72c

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

swan-pipeline/src/main/java/de/fraunhofer/iem/swan/cli/CliRunner.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public class CliRunner implements Callable<Integer> {
5050
@CommandLine.Option(names = {"-doc", "--documented"}, description = {"Use only methods with Javadoc"})
5151
private boolean isDocumented = true;
5252

53+
@CommandLine.Option(names = {"-att", "--attribute-selection"}, description = {"Use attribute selection"})
54+
private boolean reduceAttributes = false;
55+
5356
@CommandLine.Option(names = {"-i", "--iterations"}, description = {"Number of iterations for training"})
5457
private int iterations = 10;
5558

@@ -62,6 +65,12 @@ public class CliRunner implements Callable<Integer> {
6265
@CommandLine.Option(names = {"-pt", "--prediction-threshold"}, description = {"Threshold for predicting categories"})
6366
private double predictionThreshold = 0.5;
6467

68+
@CommandLine.Option(names = {"-ds", "--discovery"}, arity = "1..*", description = {"Select discovery for training set SRMs"})
69+
private List<String> discovery = Collections.singletonList("manual");
70+
71+
@CommandLine.Option(names = {"-tl", "--timelimit"}, description = {"Time (minutes) to execute operation "})
72+
private int timeLimit = 1;
73+
6574
public SwanOptions initializeOptions(){
6675

6776
SwanOptions options = new SwanOptions(testDataDir,
@@ -81,6 +90,9 @@ public SwanOptions initializeOptions(){
8190
options.setInstances(arffInstancesFiles);
8291
options.setTrainDataSourceDir(trainDataDirSource);
8392
options.setTestDataSourceDir(testDataSourceDir);
93+
options.setReduceAttributes(false);
94+
options.setDiscovery(discovery);
95+
options.setTimeLimit(timeLimit);
8496

8597
return options;
8698
}

swan-pipeline/src/main/java/de/fraunhofer/iem/swan/cli/SwanOptions.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,14 @@ public class SwanOptions {
2222
private List<String> cweClasses;
2323
private boolean exportArffData;
2424
private boolean isDocumented;
25+
private boolean reduceAttributes;
2526
private int iterations;
2627
private double trainTestSplit;
2728
private String phase;
2829
private double predictionThreshold;
2930
private List<String> arffInstancesFiles;
31+
private List<String> discovery;
32+
private int timeLimit;
3033

3134
public SwanOptions(String testDataDir, String trainDataDir, String datasetJson, String outputDir,
3235
List<String> featureSet, String toolkit, List<String> srmClasses,
@@ -136,6 +139,14 @@ public boolean isExportArffData() {
136139
return exportArffData;
137140
}
138141

142+
public boolean isReduceAttributes() {
143+
return reduceAttributes;
144+
}
145+
146+
public void setReduceAttributes(boolean reduceAttributes) {
147+
this.reduceAttributes = reduceAttributes;
148+
}
149+
139150
public void setExportArffData(boolean exportArffData) {
140151
this.exportArffData = exportArffData;
141152
}
@@ -209,6 +220,22 @@ public void setTrainDataSourceDir(String trainDataSourceDir) {
209220
this.trainDataSourceDir = trainDataSourceDir;
210221
}
211222

223+
public List<String> getDiscovery() {
224+
return discovery;
225+
}
226+
227+
public void setDiscovery(List<String> discovery) {
228+
this.discovery = discovery;
229+
}
230+
231+
public int getTimeLimit() {
232+
return timeLimit;
233+
}
234+
235+
public void setTimeLimit(int timeLimit) {
236+
this.timeLimit = timeLimit;
237+
}
238+
212239
@Override
213240
public String toString() {
214241
return "SwanOptions{" +

0 commit comments

Comments
 (0)