release 0.9.6
[debian/openrocket] / src / net / sf / openrocket / utils / MotorCompareAll.java
diff --git a/src/net/sf/openrocket/utils/MotorCompareAll.java b/src/net/sf/openrocket/utils/MotorCompareAll.java
new file mode 100644 (file)
index 0000000..ec9592e
--- /dev/null
@@ -0,0 +1,59 @@
+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.GeneralMotorLoader;
+import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.motor.Motor;
+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<Motor>, List<String>>> map =
+                       new HashMap<String, Pair<List<Motor>, List<String>>>();
+               
+               MotorLoader loader = new GeneralMotorLoader();
+               
+               for (String filename: args) {
+                       
+                       List<Motor> motors = loader.load(new FileInputStream(filename), filename);
+                       
+                       for (Motor m: motors) {
+                               String key = m.getManufacturer() + ":" + m.getDesignation();
+                               Pair<List<Motor>, List<String>> pair = map.get(key);
+                               if (pair == null) {
+                                       pair = new Pair<List<Motor>, List<String>>
+                                               (new ArrayList<Motor>(), 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<Motor>, List<String>> pair = map.get(basename);
+                       System.err.println(basename + ": " + pair.getV());
+                       MotorCompare.compare(pair.getU(), pair.getV());
+               }
+       }
+
+}