package io.sloeber.core.api;
import java.util.ArrayList;
/**
* A "struct" for the configs - names and tool chain IDs.
*
* @author Brody Kenrick Brought to its own class at API level by Jantje
*
*/
@SuppressWarnings("nls")
public class ConfigurationDescriptor {
public final String configName;
public final String ToolchainID;
public final boolean DebugCompilerSettings;
public ConfigurationDescriptor(String Name, String ToolchainID, boolean DebugCompilerSettings) {
this.configName = Name;
this.ToolchainID = ToolchainID;
this.DebugCompilerSettings = DebugCompilerSettings;
}
static public ArrayList<ConfigurationDescriptor> getDefaultDescriptors() {
ArrayList<ConfigurationDescriptor> alCfgs = new ArrayList<>();
ConfigurationDescriptor cfgTCidPair = new ConfigurationDescriptor("Release", //$NON-NLS-1$
"io.sloeber.core.toolChain.release", false); //$NON-NLS-1$
alCfgs.add(cfgTCidPair);
return alCfgs;
}
static public ArrayList<ConfigurationDescriptor> getReleaseAndDebug() {
// TODO: Consider renaming Release to ArduinoIDEConfig
// JABA:I don't think his is a good idea "standard" or "arduino" may be
// better
// Note that changing Release invalidates all existing workspaces. So if
// we change this timing will be very important.
ArrayList<ConfigurationDescriptor> alCfgs = new ArrayList<>();
ConfigurationDescriptor cfgTCidPair = new ConfigurationDescriptor("Release",
"io.sloeber.core.toolChain.release", false);
alCfgs.add(cfgTCidPair); // Always have the release build here
// Debug has same toolchain as release
ConfigurationDescriptor cfgTCidPair2 = new ConfigurationDescriptor("Debug_AVaRICE",
"io.sloeber.core.toolChain.release", true);
alCfgs.add(cfgTCidPair2);
return alCfgs;
}
}