Add Dave Cook's parts database as a git submodule, in a directory called swing/swing/resources-src/datafiles/components/

Move old rocksim-based database from .../presets to .../legacy_components
Move rocksim .csv files from .../rocksim_components to .../rocksim_src
Modify BaseComponentDTO to process units
Modify SerializePresets to take a set of directories containing .orc files
as command-line arguments, and process all of them.
Modify swing/build.xml to specify both legacy and new databases for import
This commit is contained in:
JoePfeiffer 2022-01-18 14:50:30 -07:00
parent 7fdd0ed5c7
commit 71202abfdc
80 changed files with 44 additions and 22 deletions

View File

@ -228,14 +228,16 @@ public abstract class BaseComponentDTO {
static class AnnotatedLengthDTO {
@XmlAttribute(name = "Unit", required = false)
private final String unitName = "m";
private final String unitName;
@XmlValue
private double length;
AnnotatedLengthDTO() {
this.unitName = "m";
}
AnnotatedLengthDTO(double length) {
this.unitName = "m";
this.length = length;
}
@ -246,14 +248,16 @@ public abstract class BaseComponentDTO {
static class AnnotatedMassDTO {
@XmlAttribute(name = "Unit", required = false)
private final String unitName = "kg";
private final String unitName;
@XmlValue
private double mass;
AnnotatedMassDTO() {
unitName = "kg";
}
AnnotatedMassDTO(double mass) {
unitName = "kg";
this.mass = mass;
}

View File

@ -129,6 +129,8 @@
fork="true"
classpathref="run-classpath"
failonerror="true">
<arg value="resources-src/datafiles/legacy_components"/>
<arg value="resources-src/datafiles/components/orc"/>
</java>
</target>
@ -138,7 +140,7 @@
<attribute name="vendor"/>
<sequential>
<echo>Generating ORC file for vendor @{vendor}</echo>
<java classname="net.sf.openrocket.preset.loader.RocksimComponentFileTranslator"
<java classname="net.sf.openrocket.utils.RocksimComponentFileTranslator"
fork="true"
classpathref="run-classpath"
failonerror="true">

View File

@ -18,6 +18,11 @@ import net.sf.openrocket.util.Pair;
public class SerializePresets extends BasicApplication {
private static void printUsage() {
System.err.println("SerializePresets <dir> ... ");
System.err.println("<dir> (may be repeated) is base directory for a set of .orc preset files");
}
/**
* @param args
*/
@ -26,15 +31,24 @@ public class SerializePresets extends BasicApplication {
SerializePresets app = new SerializePresets();
app.initializeApplication();
if (args.length < 1) {
printUsage();
throw new IllegalArgumentException("Invalid Command Line Params");
}
Locale.setDefault(Locale.ENGLISH);
ComponentPresetDatabase componentPresetDao = new ComponentPresetDatabase();
FileIterator iterator = DirectoryIterator.findDirectory("resources-src/datafiles/presets", new SimpleFileFilter("", false, "orc"));
for (int i = 0; i < args.length; i++) {
System.err.println("Processing .orc files in directory " + args[i]);
FileIterator iterator = DirectoryIterator.findDirectory(args[i], new SimpleFileFilter("", false, "orc"));
if (iterator == null) {
throw new RuntimeException("Can't find resources-src/presets directory");
throw new RuntimeException("Can't find " + args[i] + " directory");
}
while (iterator.hasNext()) {
Pair<String, InputStream> f = iterator.next();
String fileName = f.getU();
@ -47,6 +61,8 @@ public class SerializePresets extends BasicApplication {
}
}
List<ComponentPreset> list = componentPresetDao.listAll();
System.out.println("Total number of presets = " + list.size());