Merge branch 'upstream' into debian
[debian/openrocket] / android / src / net / sf / openrocket / android / db / ConversionUtils.java
1 package net.sf.openrocket.android.db;\r
2 \r
3 import java.io.ByteArrayInputStream;\r
4 import java.io.ByteArrayOutputStream;\r
5 import java.io.ObjectInputStream;\r
6 import java.io.ObjectOutputStream;\r
7 \r
8 import net.sf.openrocket.motor.Motor;\r
9 import net.sf.openrocket.util.Coordinate;\r
10 \r
11 public abstract class ConversionUtils {\r
12 \r
13         static double[] stringToDelays( String value ) {\r
14                 if (value == null || "".equals(value) ) {\r
15                         return new double[0];\r
16                 }\r
17                 String[] parts = value.split(",");\r
18                 double[] values = new double[parts.length];\r
19                 for( int i =0; i<parts.length; i++ ) {\r
20                         String p = parts[i];\r
21                         if ( "P".equals(p) ) {\r
22                                 values[i] = Motor.PLUGGED;\r
23                         } else {\r
24                                 double d = Double.parseDouble(p);\r
25                                 values[i] = d;\r
26                         }\r
27                 }\r
28                 return values;\r
29         }\r
30         \r
31         public static String delaysToString( double[] delays ) {\r
32                 StringBuilder s = new StringBuilder();\r
33                 boolean first = true;\r
34                 for( double d:delays ) {\r
35                         if (!first) {\r
36                                 s .append(",");\r
37                         } else {\r
38                                 first = false;\r
39                         }\r
40                         if ( d == Motor.PLUGGED ) {\r
41                                 s.append("P");\r
42                         } else {\r
43                                 s.append(Math.round(d));\r
44                         }\r
45                 }\r
46                 return s.toString();\r
47         }\r
48         \r
49         static double[] deserializeArrayOfDouble( byte[] bytes ) throws Exception {\r
50                 double[] data = null;\r
51                 if (bytes != null ) {\r
52                         ObjectInputStream is = new ObjectInputStream( new ByteArrayInputStream(bytes));\r
53                         data = (double[]) is.readObject();\r
54                 }\r
55                 return data;\r
56         }\r
57 \r
58         static byte[] serializeArrayOfDouble( double[] data ) throws Exception {\r
59 \r
60                 byte[] serObj = null;\r
61                 if ( data != null ) {\r
62                         ByteArrayOutputStream b = new ByteArrayOutputStream();\r
63                         ObjectOutputStream os = new ObjectOutputStream(b);\r
64                         os.writeObject(data);\r
65                         os.close();\r
66                         serObj = b.toByteArray();\r
67                 }\r
68                 return serObj;\r
69         }\r
70 \r
71         static Coordinate[] deserializeArrayOfCoordinate( byte[] bytes ) throws Exception {\r
72                 Coordinate[] data = null;\r
73                 if (bytes != null ) {\r
74                         ObjectInputStream is = new ObjectInputStream( new ByteArrayInputStream(bytes));\r
75                         data = (Coordinate[]) is.readObject();\r
76                 }\r
77                 return data;\r
78         }\r
79 \r
80         static byte[] serializeArrayOfCoordinate( Coordinate[] data ) throws Exception {\r
81 \r
82                 byte[] serObj = null;\r
83                 if ( data != null ) {\r
84                         ByteArrayOutputStream b = new ByteArrayOutputStream();\r
85                         ObjectOutputStream os = new ObjectOutputStream(b);\r
86                         os.writeObject(data);\r
87                         os.close();\r
88                         serObj = b.toByteArray();\r
89                 }\r
90                 return serObj;\r
91         }\r
92 \r
93 \r
94 }