Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / android / src / net / sf / openrocket / android / db / MotorDao.java
index 5ea8caec119477b4c823df30031aae8d30a06ea2..8c865437c8fd4d468918d486e4c95cfcd5dc21db 100644 (file)
@@ -2,6 +2,7 @@ package net.sf.openrocket.android.db;
 \r
 import net.sf.openrocket.android.motor.ExtendedThrustCurveMotor;\r
 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
+import net.sf.openrocket.android.util.AndroidLogWrapper.LogHelper;\r
 import net.sf.openrocket.motor.Manufacturer;\r
 import net.sf.openrocket.motor.Motor;\r
 import net.sf.openrocket.motor.ThrustCurveMotor;\r
@@ -93,25 +94,24 @@ public class MotorDao {
        \r
        public long insertOrUpdateMotor(ExtendedThrustCurveMotor mi) throws Exception {\r
                ContentValues initialValues = new ContentValues();\r
-               final ThrustCurveMotor tcm = mi.getThrustCurveMotor();\r
                initialValues.put(ID, mi.getId());\r
-               initialValues.put(UNIQUE_NAME, tcm.getManufacturer() + tcm.getDesignation());\r
-               initialValues.put(DIGEST, tcm.getDigest());\r
-               initialValues.put(DESIGNATION, tcm.getDesignation());\r
-               initialValues.put(DELAYS, ConversionUtils.delaysToString(tcm.getStandardDelays()));\r
-               initialValues.put(DIAMETER, tcm.getDiameter());\r
-               initialValues.put(TOTAL_IMPULSE, tcm.getTotalImpulseEstimate());\r
-               initialValues.put(AVG_THRUST, tcm.getAverageThrustEstimate());\r
-               initialValues.put(MAX_THRUST, tcm.getMaxThrustEstimate());\r
-               initialValues.put(BURN_TIME, tcm.getBurnTimeEstimate());\r
-               initialValues.put(LENGTH, tcm.getLength());\r
+               initialValues.put(UNIQUE_NAME, mi.getManufacturer() + mi.getDesignation());\r
+               initialValues.put(DIGEST, mi.getDigest());\r
+               initialValues.put(DESIGNATION, mi.getDesignation());\r
+               initialValues.put(DELAYS, ConversionUtils.delaysToString(mi.getStandardDelays()));\r
+               initialValues.put(DIAMETER, mi.getDiameter());\r
+               initialValues.put(TOTAL_IMPULSE, mi.getTotalImpulseEstimate());\r
+               initialValues.put(AVG_THRUST, mi.getAverageThrustEstimate());\r
+               initialValues.put(MAX_THRUST, mi.getMaxThrustEstimate());\r
+               initialValues.put(BURN_TIME, mi.getBurnTimeEstimate());\r
+               initialValues.put(LENGTH, mi.getLength());\r
                initialValues.put(CASE_INFO, mi.getCaseInfo());\r
-               initialValues.put(TYPE, tcm.getMotorType().name());\r
+               initialValues.put(TYPE, mi.getMotorType().name());\r
                initialValues.put(IMPULSE_CLASS, mi.getImpulseClass());\r
-               initialValues.put(MANUFACTURER, tcm.getManufacturer().getSimpleName());\r
-               initialValues.put(THRUST_DATA, ConversionUtils.serializeArrayOfDouble(tcm.getThrustPoints()));\r
-               initialValues.put(TIME_DATA, ConversionUtils.serializeArrayOfDouble(tcm.getTimePoints()));\r
-               initialValues.put(CG_DATA, ConversionUtils.serializeArrayOfCoordinate(tcm.getCGPoints()));\r
+               initialValues.put(MANUFACTURER, mi.getManufacturer().getSimpleName());\r
+               initialValues.put(THRUST_DATA, ConversionUtils.serializeArrayOfDouble(mi.getThrustPoints()));\r
+               initialValues.put(TIME_DATA, ConversionUtils.serializeArrayOfDouble(mi.getTimePoints()));\r
+               initialValues.put(CG_DATA, ConversionUtils.serializeArrayOfCoordinate(mi.getCGPoints()));\r
                \r
                AndroidLogWrapper.d(MotorDao.class, "insertOrUpdate Motor");\r
                long rv = mDb.insertWithOnConflict(DATABASE_TABLE, null, initialValues, SQLiteDatabase.CONFLICT_REPLACE);\r
@@ -143,7 +143,7 @@ public class MotorDao {
                                /* selection args*/new String[] { groupVal },\r
                                /* groupby */null,\r
                                /* having*/null,\r
-                               /* orderby*/DESIGNATION);\r
+                               /* orderby*/TOTAL_IMPULSE);\r
                \r
        }\r
        \r
@@ -161,7 +161,7 @@ public class MotorDao {
                                /* selection args*/null,\r
                                /* groupby */null,\r
                                /* having*/null,\r
-                               /* orderby*/null,\r
+                               /* orderby*/groupCol,\r
                                /* limit*/null);\r
                \r
        }\r
@@ -183,12 +183,7 @@ public class MotorDao {
        }\r
        \r
        private ExtendedThrustCurveMotor hydrateMotor(Cursor mCursor) throws Exception {\r
-               ExtendedThrustCurveMotor mi = new ExtendedThrustCurveMotor();\r
-               \r
-               mi.setId(mCursor.getLong(mCursor.getColumnIndex(ID)));\r
-               mi.setCaseInfo(mCursor.getString(mCursor.getColumnIndex(CASE_INFO)));\r
-               mi.setImpulseClass(mCursor.getString(mCursor.getColumnIndex(IMPULSE_CLASS)));\r
-               \r
+               ExtendedThrustCurveMotor mi;\r
                {\r
                        String digest = mCursor.getString(mCursor.getColumnIndex(DIGEST));\r
                        String designation = mCursor.getString(mCursor.getColumnIndex(DESIGNATION));\r
@@ -222,7 +217,12 @@ public class MotorDao {
                                        cgData,\r
                                        digest\r
                                        );\r
-                       mi.setThrustCurveMotor(tcm);\r
+                       mi = new ExtendedThrustCurveMotor(tcm);\r
+                       \r
+                       mi.setId(mCursor.getLong(mCursor.getColumnIndex(ID)));\r
+                       mi.setCaseInfo(mCursor.getString(mCursor.getColumnIndex(CASE_INFO)));\r
+                       mi.setImpulseClass(mCursor.getString(mCursor.getColumnIndex(IMPULSE_CLASS)));\r
+                       \r
                }\r
                return mi;\r
                \r
@@ -268,6 +268,9 @@ public class MotorDao {
                        }\r
                        mCursor.moveToFirst();\r
                        return hydrateMotor(mCursor);\r
+               } catch( Exception ex ) {\r
+                       LogHelper.getInstance().debug("whoa!", ex);\r
+                       throw ex;\r
                } finally {\r
                        mCursor.close();\r
                }\r