import java.io.ByteArrayOutputStream;\r
import java.io.ObjectInputStream;\r
import java.io.ObjectOutputStream;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
\r
+import net.sf.openrocket.motor.Motor;\r
import net.sf.openrocket.util.Coordinate;\r
\r
-abstract class ConversionUtils {\r
+public abstract class ConversionUtils {\r
\r
+ static double[] stringToDelays( String value ) {\r
+ if (value == null || "".equals(value) ) {\r
+ return new double[0];\r
+ }\r
+ String[] parts = value.split(",");\r
+ double[] values = new double[parts.length];\r
+ for( int i =0; i<parts.length; i++ ) {\r
+ String p = parts[i];\r
+ if ( "P".equals(p) ) {\r
+ values[i] = Motor.PLUGGED;\r
+ } else {\r
+ double d = Double.parseDouble(p);\r
+ values[i] = d;\r
+ }\r
+ }\r
+ return values;\r
+ }\r
+ \r
+ public static String delaysToString( double[] delays ) {\r
+ StringBuilder s = new StringBuilder();\r
+ boolean first = true;\r
+ for( double d:delays ) {\r
+ if (!first) {\r
+ s .append(",");\r
+ } else {\r
+ first = false;\r
+ }\r
+ if ( d == Motor.PLUGGED ) {\r
+ s.append("P");\r
+ } else {\r
+ s.append(Math.round(d));\r
+ }\r
+ }\r
+ return s.toString();\r
+ }\r
+ \r
+ public static List<String> delaysToStringList( double[] delays ) {\r
+ ArrayList<String> list = new ArrayList<String>( delays.length );\r
+ for( double d: delays ) {\r
+ if ( d == Motor.PLUGGED ) {\r
+ list.add("P");\r
+ } else {\r
+ list.add(String.valueOf(Math.round(d)));\r
+ }\r
+ }\r
+ return list;\r
+ }\r
+ \r
+ public static double stringToDelay( String s ) {\r
+ if ( "P".equals(s) ) {\r
+ return Motor.PLUGGED;\r
+ }\r
+ return Long.parseLong(s);\r
+ }\r
+ \r
static double[] deserializeArrayOfDouble( byte[] bytes ) throws Exception {\r
double[] data = null;\r
if (bytes != null ) {\r