package net.sf.openrocket.utils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import net.sf.openrocket.file.iterator.DirectoryIterator;
import net.sf.openrocket.file.iterator.FileIterator;
import net.sf.openrocket.file.motor.GeneralMotorLoader;
import net.sf.openrocket.gui.util.SimpleFileFilter;
import net.sf.openrocket.motor.Motor;
import net.sf.openrocket.util.Pair;
public class SerializeMotors {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.out.println("Usage: java " + SerializeMotors.class.getCanonicalName() + " <input-dir> <output-file>");
System.exit(1);
}
String inputDir = args[0];
String outputFile = args[1];
//Application.setPreferences(new SwingPreferences());
File outFile = new File(outputFile);
FileOutputStream ofs = new FileOutputStream(outFile);
final ObjectOutputStream oos = new ObjectOutputStream(ofs);
final List<Motor> allMotors = new ArrayList<Motor>();
GeneralMotorLoader loader = new GeneralMotorLoader();
FileIterator iterator = DirectoryIterator.findDirectory(inputDir, new SimpleFileFilter("", false, loader.getSupportedExtensions()));
if (iterator == null) {
System.out.println("Can't find resources-src/thrustcurves directory");
System.exit(1);
} else {
while (iterator.hasNext()) {
Pair<String, InputStream> f = iterator.next();
String fileName = f.getU();
InputStream is = f.getV();
List<Motor> motors = loader.load(is, fileName);
allMotors.addAll(motors);
}
}
oos.writeObject(allMotors);
oos.flush();
ofs.flush();
ofs.close();
}
}