package net.sf.openrocket.utils;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.openrocket.file.motor.GeneralMotorLoader;
import net.sf.openrocket.file.motor.MotorLoader;
import net.sf.openrocket.motor.ThrustCurveMotor;
import net.sf.openrocket.util.Pair;
public class MotorCompareAll {
/*
* Usage:
*
* java MotorCompareAll *.eng *.rse
*/
public static void main(String[] args) throws IOException {
Map<String, Pair<List<ThrustCurveMotor>, List<String>>> map =
new HashMap<String, Pair<List<ThrustCurveMotor>, List<String>>>();
MotorLoader loader = new GeneralMotorLoader();
for (String filename : args) {
List<ThrustCurveMotor> motors = (List) loader.load(new FileInputStream(filename), filename);
for (ThrustCurveMotor m : motors) {
String key = m.getManufacturer() + ":" + m.getDesignation();
Pair<List<ThrustCurveMotor>, List<String>> pair = map.get(key);
if (pair == null) {
pair = new Pair<List<ThrustCurveMotor>, List<String>>
(new ArrayList<ThrustCurveMotor>(), new ArrayList<String>());
map.put(key, pair);
}
pair.getU().add(m);
pair.getV().add(filename);
}
}
Collator collator = Collator.getInstance();
List<String> keys = new ArrayList<String>(map.keySet());
Collections.sort(keys, collator);
for (String basename : keys) {
Pair<List<ThrustCurveMotor>, List<String>> pair = map.get(basename);
System.err.println(basename + ": " + pair.getV());
MotorCompare.compare(pair.getU(), pair.getV());
}
}
}