/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 3 as published by
the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.cirqwizard.settings;
import java.util.ArrayList;
import java.util.List;
public class SettingsFactory
{
private static MachineSettings machineSettings = new MachineSettings();
private static PredefinedLocationSettings predefinedLocationSettings = new PredefinedLocationSettings();
private static InsulationMillingSettings insulationMillingSettings = new InsulationMillingSettings();
private static RubOutSettings rubOutSettings = new RubOutSettings();
private static DrillingSettings drillingSettings = new DrillingSettings();
private static ContourMillingSettings contourMillingSettings = new ContourMillingSettings();
private static DispensingSettings dispensingSettings = new DispensingSettings();
private static PPSettings ppSettings = new PPSettings();
private static ImportSettings importSettings = new ImportSettings();
private static ApplicationSettings applicationSettings = new ApplicationSettings();
private static ApplicationValues applicationValues = new ApplicationValues();
public static MachineSettings getMachineSettings()
{
machineSettings.load();
return machineSettings;
}
public static PredefinedLocationSettings getPredefinedLocationSettings()
{
predefinedLocationSettings.load();
return predefinedLocationSettings;
}
public static InsulationMillingSettings getInsulationMillingSettings()
{
insulationMillingSettings.load();
return insulationMillingSettings;
}
public static RubOutSettings getRubOutSettings()
{
rubOutSettings.load();
return rubOutSettings;
}
public static DrillingSettings getDrillingSettings()
{
drillingSettings.load();
return drillingSettings;
}
public static ContourMillingSettings getContourMillingSettings()
{
contourMillingSettings.load();
return contourMillingSettings;
}
public static DispensingSettings getDispensingSettings()
{
dispensingSettings.load();
return dispensingSettings;
}
public static PPSettings getPpSettings()
{
ppSettings.load();
return ppSettings;
}
public static ImportSettings getImportSettings()
{
importSettings.load();
return importSettings;
}
public static ApplicationSettings getApplicationSettings()
{
applicationSettings.load();
return applicationSettings;
}
public static ApplicationValues getApplicationValues()
{
applicationValues.load();
return applicationValues;
}
public static List<SettingsGroup> getAllGroups()
{
ArrayList<SettingsGroup> groups = new ArrayList<>();
groups.add(getMachineSettings());
groups.add(getPredefinedLocationSettings());
groups.add(getInsulationMillingSettings());
groups.add(getRubOutSettings());
groups.add(getDrillingSettings());
groups.add(getContourMillingSettings());
groups.add(getDispensingSettings());
groups.add(getPpSettings());
groups.add(getImportSettings());
groups.add(getApplicationSettings());
return groups;
}
public static void resetAll()
{
getAllGroups().stream().forEach(SettingsGroup::remove);
}
}