package net.sf.openrocket.android.db;\r
\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
import android.content.ContentValues;\r
import android.database.Cursor;\r
import android.database.sqlite.SQLiteDatabase;\r
-import android.util.Log;\r
\r
public class MotorDao {\r
\r
- private static final String TAG = "MotorDao";\r
- \r
private SQLiteDatabase mDb;\r
\r
private final static String DATABASE_TABLE = "motor";\r
\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
- Log.d(TAG, "insertOrUpdate Motor");\r
+ AndroidLogWrapper.d(MotorDao.class, "insertOrUpdate Motor");\r
long rv = mDb.insertWithOnConflict(DATABASE_TABLE, null, initialValues, SQLiteDatabase.CONFLICT_REPLACE);\r
return rv;\r
}\r
/* selection args*/new String[] { groupVal },\r
/* groupby */null,\r
/* having*/null,\r
- /* orderby*/DESIGNATION);\r
+ /* orderby*/TOTAL_IMPULSE);\r
\r
}\r
\r
/* selection args*/null,\r
/* groupby */null,\r
/* having*/null,\r
- /* orderby*/null,\r
+ /* orderby*/groupCol,\r
/* limit*/null);\r
\r
}\r
}\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
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
}\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