Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / android / src / net / sf / openrocket / android / db / ConversionUtils.java
index a5695a1d8d7365d557b4d6ed8fac4d6983a47272..a1f5bee9456cafc5670fddbe0332cdc5ef56b133 100644 (file)
@@ -4,11 +4,69 @@ import java.io.ByteArrayInputStream;
 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