Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2545,3 +2545,4 @@ bin/
/javafx/src/javafx.web/javafx/scene/web/WebView.java
/javafx/src/javafx.web/module-info.java
/javafx/src.zip
/test_output/ynb.xlsx
7 changes: 7 additions & 0 deletions src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,11 @@
opens org.awdevelopment.smithlab.gui to javafx.fxml, javafx.graphics, javafx.controls;
opens org.awdevelopment.smithlab.gui.controllers to javafx.fxml, javafx.graphics, javafx.controls;
opens org.awdevelopment.smithlab to javafx.fxml, javafx.graphics, javafx.controls;
exports org.awdevelopment.smithlab.config.exceptions;
opens org.awdevelopment.smithlab.config to javafx.controls, javafx.fxml, javafx.graphics;
exports org.awdevelopment.smithlab.gui.controllers.main;
opens org.awdevelopment.smithlab.gui.controllers.main to javafx.controls, javafx.fxml, javafx.graphics;
exports org.awdevelopment.smithlab.gui.controllers.main.validatable_field;
opens org.awdevelopment.smithlab.gui.controllers.main.validatable_field to javafx.controls, javafx.fxml, javafx.graphics;
opens org.awdevelopment.smithlab.logging to javafx.controls, javafx.fxml, javafx.graphics;
}
14 changes: 8 additions & 6 deletions src/main/java/org/awdevelopment/smithlab/MainApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
import javafx.stage.Stage;
import org.apache.logging.log4j.LogManager;
import org.awdevelopment.smithlab.args.Arguments;
import org.awdevelopment.smithlab.config.Config;
import org.awdevelopment.smithlab.config.EmptyInputSheetConfig;
import org.awdevelopment.smithlab.config.Mode;
import org.awdevelopment.smithlab.config.OutputSheetsConfig;
import org.awdevelopment.smithlab.data.experiment.Experiment;
import org.awdevelopment.smithlab.gui.FXMLResourceType;
import org.awdevelopment.smithlab.gui.SceneLoader;
Expand All @@ -21,15 +22,16 @@ public static void main(String[] args) {
if (args.length == 0) launch();
else {
Arguments arguments = new Arguments(args, LOGGER);
Config config = new Config(arguments);
try {
if (config.mode() == Mode.GENERATE_EMPTY_INPUT_SHEET) {
OutputGenerator outputGenerator = new OutputGenerator(config, LOGGER);
if (arguments.getMode() == Mode.GENERATE_EMPTY_INPUT_SHEET) {
EmptyInputSheetConfig config = new EmptyInputSheetConfig(arguments, LOGGER);
OutputGenerator outputGenerator = new OutputGenerator(config);
outputGenerator.generateEmptyInputSheet();
} else if (config.mode() == Mode.GENERATE_OUTPUT_SHEETS) {
} else if (arguments.getMode() == Mode.GENERATE_OUTPUT_SHEETS) {
OutputSheetsConfig config = new OutputSheetsConfig(arguments, LOGGER);
OutputGenerator outputGenerator = new OutputGenerator(config);
InputReader reader = new InputReader(config, LOGGER);
Experiment experiment = reader.readExperimentData();
OutputGenerator outputGenerator = new OutputGenerator(config, LOGGER);
outputGenerator.generateOutput(experiment);
}
} catch (Exception ignored) {
Expand Down
42 changes: 21 additions & 21 deletions src/main/java/org/awdevelopment/smithlab/args/Arguments.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.awdevelopment.smithlab.args;

import org.awdevelopment.smithlab.args.exceptions.*;
import org.awdevelopment.smithlab.config.ConfigDefault;
import org.awdevelopment.smithlab.config.ConfigDefaults;
import org.awdevelopment.smithlab.config.Mode;
import org.awdevelopment.smithlab.config.SampleLabelingType;
import org.awdevelopment.smithlab.config.SortOption;
Expand All @@ -21,25 +21,25 @@ public class Arguments {

private final LoggerHelper LOGGER;

private OutputType outputType = ConfigDefault.OUTPUT_TYPE;
private Mode mode = ConfigDefault.MODE;
private boolean writeToDifferentFile = ConfigDefault.WRITE_TO_DIFFERENT_FILE;
private String outputFileName = ConfigDefault.OUTPUT_FILENAME;
private File inputFile = ConfigDefault.INPUT_FILE;
private SortOption outputSorting = ConfigDefault.SORT_OPTION;
private byte replicateNumber = ConfigDefault.NUMBER_OF_REPLICATES;
private String emptyInputSheetName = ConfigDefault.EMPTY_INPUT_SHEET_NAME;
private Set<Condition> conditions = ConfigDefault.CONDITIONS;
private Set<Strain> strains = ConfigDefault.STRAINS;
private Set<Byte> days = ConfigDefault.DAYS;
private byte numDays = ConfigDefault.NUM_DAYS;
private boolean includeBaselineColumn = ConfigDefault.INCLUDE_BASELINE_COLUMN;
private SampleLabelingType sampleLabelingType = ConfigDefault.SAMPLE_LABELING_TYPE;
private byte numConditions = ConfigDefault.NUM_CONDITIONS;
private byte numStrains = ConfigDefault.NUM_STRAINS;
private boolean usingNumDays = ConfigDefault.USING_NUM_DAYS;
private boolean usingNumConditions = ConfigDefault.USING_NUM_CONDITIONS;
private boolean usingNumStrains = ConfigDefault.USING_NUM_STRAINS;
private OutputType outputType = ConfigDefaults.OUTPUT_TYPE;
private Mode mode = ConfigDefaults.MODE;
private boolean writeToDifferentFile = ConfigDefaults.WRITE_TO_DIFFERENT_FILE;
private String outputFileName = ConfigDefaults.OUTPUT_FILENAME;
private File inputFile = ConfigDefaults.INPUT_FILE;
private SortOption outputSorting = ConfigDefaults.SORT_OPTION;
private byte replicateNumber = ConfigDefaults.NUMBER_OF_REPLICATES;
private String emptyInputSheetName = ConfigDefaults.EMPTY_INPUT_SHEET_NAME;
private Set<Condition> conditions = ConfigDefaults.CONDITIONS;
private Set<Strain> strains = ConfigDefaults.STRAINS;
private Set<Byte> days = ConfigDefaults.DAYS;
private byte numDays = ConfigDefaults.NUM_DAYS;
private boolean includeBaselineColumn = ConfigDefaults.INCLUDE_BASELINE_COLUMN;
private SampleLabelingType sampleLabelingType = ConfigDefaults.SAMPLE_LABELING_TYPE;
private byte numConditions = ConfigDefaults.NUM_CONDITIONS;
private byte numStrains = ConfigDefaults.NUM_STRAINS;
private boolean usingNumDays = ConfigDefaults.USING_NUM_DAYS;
private boolean usingNumConditions = ConfigDefaults.USING_NUM_CONDITIONS;
private boolean usingNumStrains = ConfigDefaults.USING_NUM_STRAINS;

public Arguments(String[] args, LoggerHelper logger) {
this.LOGGER = logger;
Expand Down Expand Up @@ -160,7 +160,7 @@ else if (outputFileName.equals(inputFile.getPath())) {
}
}
if (replicateNumber == -1) {
if (outputType == OutputType.BOTH || outputType == OutputType.STATISTICAL_TESTS) {
if (outputType == OutputType.BOTH || outputType == OutputType.OASIS) {
throw new NoReplicatesProvidedException(outputType);
} else {
LOGGER.atWarn("No replicate number provided. " +
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package org.awdevelopment.smithlab.config;

import org.awdevelopment.smithlab.config.exceptions.ConfigException;
import org.awdevelopment.smithlab.config.exceptions.ConfigOptionNotFoundException;
import org.awdevelopment.smithlab.config.exceptions.WrongObjectTypeException;
import org.awdevelopment.smithlab.logging.LoggerHelper;

import java.util.HashSet;
import java.util.Optional;
import java.util.Set;

public abstract class AbstractConfig {

private final Set<ConfigEntry<?>> config;
private final LoggerHelper LOGGER;

protected AbstractConfig(LoggerHelper logger) {
this.config = new HashSet<>();
this.LOGGER = logger;
config.add(new ConfigEntry<>(ConfigOption.GUI, ConfigDefaults.GUI));
}

public <T> T get(ConfigOption option) {
try {
return getConfigEntryValue(option);
} catch (ConfigException e) {
LOGGER().atFatal(e.getMessage());
System.exit(1);
}
return null;
}

public <T> void set(ConfigOption option, T value) {
try {
setConfigEntry(option, value);
} catch (ConfigException e) {
LOGGER().atFatal(e.getMessage());
System.exit(1);
}
}

protected <T> void addConfigEntry(ConfigEntry<T> entry) {
config.add(entry);
}

private Optional<ConfigEntry<?>> getConfigEntry(ConfigOption option) {
return config.stream().filter(e -> e.option().equals(option)).findFirst();
}

private <T> T getConfigEntryValue(ConfigOption option) throws ConfigException {
Optional<ConfigEntry<?>> entryOptional = getConfigEntry(option);
if (entryOptional.isPresent()) {
ConfigEntry<T> typedEntry;
try {
typedEntry = (ConfigEntry<T>) entryOptional.get();
} catch (ClassCastException e) {
throw new WrongObjectTypeException(entryOptional.get(), this);
}
return typedEntry.value();
} else {
throw new ConfigOptionNotFoundException(option, this);
}
}


private <T> void setConfigEntry(ConfigOption option, T value) throws ConfigException {
Optional<ConfigEntry<?>> entryOptional = getConfigEntry(option);
if (entryOptional.isPresent()) {
ConfigEntry<T> typedEntry;
try { typedEntry = (ConfigEntry<T>) entryOptional.get(); }
catch (ClassCastException e) { throw new WrongObjectTypeException(entryOptional.get(), this); }
typedEntry.setValue(value);
} else throw new ConfigOptionNotFoundException(option, this);
}

public boolean GUI() { return get(ConfigOption.GUI); }
public void setGUI(boolean GUI) { set(ConfigOption.GUI, GUI); }

@Override
public abstract String toString();

public abstract Mode mode();

public LoggerHelper LOGGER() { return LOGGER; }
}
173 changes: 0 additions & 173 deletions src/main/java/org/awdevelopment/smithlab/config/Config.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@
import java.util.HashSet;
import java.util.Set;

public class ConfigDefault {
public class ConfigDefaults {

public static final byte NUM_DAYS = 0;
public static final Object GUI = Boolean.TRUE;
private static final String DEFAULT_FILENAME = "Spreadsheet Formatter Output.xlsx";
public static final String EMPTY_INPUT_SHEET_FILENAME = "Empty Data Entry Sheet.xlsx";
public static final OutputType OUTPUT_TYPE = OutputType.BOTH;
public static final String OUTPUT_FILENAME = DEFAULT_FILENAME;
public static final Mode MODE = Mode.GENERATE_OUTPUT_SHEETS;
Expand Down
Loading