OSDN Git Service

記録用DBの作成準備。
authorMRSa <mrsa@myad.jp>
Sun, 4 Mar 2018 13:43:33 +0000 (22:43 +0900)
committerMRSa <mrsa@myad.jp>
Sun, 4 Mar 2018 13:43:33 +0000 (22:43 +0900)
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/TimeEntryDataOpenHelper.java [new file with mode: 0644]
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryData.java [new file with mode: 0644]
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryGps.java [new file with mode: 0644]
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryIndex.java [new file with mode: 0644]
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryMemo.java [new file with mode: 0644]

diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/TimeEntryDataOpenHelper.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/TimeEntryDataOpenHelper.java
new file mode 100644 (file)
index 0000000..af14749
--- /dev/null
@@ -0,0 +1,140 @@
+package net.osdn.gokigen.joggingtimer.storage;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+import net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryData;
+import net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryGps;
+import net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryIndex;
+import net.osdn.gokigen.joggingtimer.storage.contract.TimeEntryMemo;
+
+/**
+ *  TimeEntryDataOpenHelper : to manage database creation and version management.
+ *      - https://developer.android.com/training/basics/data-storage/databases.html
+ *
+ *        > TimeEntryDataOpenHelper mDbHelper = new TimeEntryDataOpenHelper(getContext());
+ *
+ */
+public class TimeEntryDataOpenHelper extends SQLiteOpenHelper
+{
+    private final String TAG = toString();
+    private static final String DATABASE_NAME = "TimeEntryData.db";
+    private static final int DATABASE_VERSION = 2;
+
+    private static final String INTEGER_TYPE = " INTEGER";
+    private static final String TEXT_TYPE = " TEXT";
+    private static final String REAL_TYPE = " REAL";
+    private static final String COMMA_SEP = ",";
+
+    private static final String SQL_CREATE_ENTRY_ENTRYDATA =
+            "CREATE TABLE " + TimeEntryData.EntryData.TABLE_NAME + " (" +
+                    TimeEntryData.EntryData._ID + " INTEGER PRIMARY KEY," +
+                    TimeEntryData.EntryData.COLUMN_NAME_INDEX_ID + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryData.EntryData.COLUMN_NAME_ICON_ID + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryData.EntryData.COLUMN_NAME_MEMO_ID + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryData.EntryData.COLUMN_NAME_GPS_ID + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryData.EntryData.COLUMN_NAME_ORDER + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryData.EntryData.COLUMN_NAME_RECORD_TYPE + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryData.EntryData.COLUMN_NAME_TIME_ENTRY + INTEGER_TYPE + " )";
+
+    private static final String SQL_CREATE_ENTRY_ENTRYINDEX =
+            "CREATE TABLE " + TimeEntryIndex.EntryIndex.TABLE_NAME + " (" +
+                    TimeEntryIndex.EntryIndex._ID + " INTEGER PRIMARY KEY," +
+                    TimeEntryIndex.EntryIndex.COLUMN_NAME_ICON_ID + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryIndex.EntryIndex.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
+                    TimeEntryIndex.EntryIndex.COLUMN_NAME_MEMO + TEXT_TYPE + COMMA_SEP +
+                    TimeEntryIndex.EntryIndex.COLUMN_NAME_START_TIME + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryIndex.EntryIndex.COLUMN_NAME_TIME_DURATION + INTEGER_TYPE + " )";
+
+    private static final String SQL_CREATE_ENTRY_MEMO =
+            "CREATE TABLE " + TimeEntryMemo.EntryMemo.TABLE_NAME + " (" +
+                    TimeEntryMemo.EntryMemo._ID + " INTEGER PRIMARY KEY," +
+                    TimeEntryMemo.EntryMemo.COLUMN_NAME_DATETIME + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryMemo.EntryMemo.COLUMN_NAME_ICON + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryMemo.EntryMemo.COLUMN_NAME_DATA_MEMO + TEXT_TYPE + " )";
+
+    private static final String SQL_CREATE_ENTRY_GPS =
+            "CREATE TABLE " + TimeEntryGps.EntryGps.TABLE_NAME + " (" +
+                    TimeEntryGps.EntryGps._ID + " INTEGER PRIMARY KEY," +
+                    TimeEntryGps.EntryGps.COLUMN_NAME_DATETIME + INTEGER_TYPE + COMMA_SEP +
+                    TimeEntryGps.EntryGps.COLUMN_NAME_LONGITUDE + REAL_TYPE + COMMA_SEP +
+                    TimeEntryGps.EntryGps.COLUMN_NAME_LATITUDE + REAL_TYPE + COMMA_SEP +
+                    TimeEntryGps.EntryGps.COLUMN_NAME_ALTITUDE + REAL_TYPE + COMMA_SEP +
+                    TimeEntryGps.EntryGps.COLUMN_NAME_SPEED + REAL_TYPE + COMMA_SEP +
+                    TimeEntryGps.EntryGps.COLUMN_NAME_MEMO + TEXT_TYPE + " )";
+
+    private static final String SQL_DELETE_ENTRY_ENTRYDATA =
+            "DROP TABLE IF EXISTS " + TimeEntryData.EntryData.TABLE_NAME;
+
+    private static final String SQL_DELETE_ENTRY_ENTRYINDEX =
+            "DROP TABLE IF EXISTS " + TimeEntryIndex.EntryIndex.TABLE_NAME;
+
+    private static final String SQL_DELETE_ENTRY_MEMO =
+            "DROP TABLE IF EXISTS " + TimeEntryMemo.EntryMemo.TABLE_NAME;
+
+    private static final String SQL_DELETE_ENTRY_GPS =
+            "DROP TABLE IF EXISTS " + TimeEntryGps.EntryGps.TABLE_NAME;
+
+    /**
+     *   TimeEntryDataOpenHelper constructor
+     *
+     * @param context  context
+     */
+    public TimeEntryDataOpenHelper(Context context)
+    {
+        super(context, DATABASE_NAME, null, DATABASE_VERSION);
+    }
+
+    /**
+     *
+     */
+    @Override
+    public void onCreate(SQLiteDatabase db)
+    {
+        Log.v(TAG, "onCreate()");
+        try
+        {
+            db.execSQL(SQL_CREATE_ENTRY_ENTRYDATA);
+            db.execSQL(SQL_CREATE_ENTRY_ENTRYINDEX);
+            db.execSQL(SQL_CREATE_ENTRY_MEMO);
+            db.execSQL(SQL_CREATE_ENTRY_GPS);
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     *
+     */
+    @Override
+    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
+    {
+        Log.v(TAG, "onCreate()");
+        try
+        {
+            db.execSQL(SQL_DELETE_ENTRY_ENTRYDATA);
+            db.execSQL(SQL_DELETE_ENTRY_ENTRYINDEX);
+            db.execSQL(SQL_DELETE_ENTRY_MEMO);
+            db.execSQL(SQL_DELETE_ENTRY_GPS);
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+
+        onCreate(db);
+    }
+
+    /**
+     *
+     */
+    @Override
+    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion)
+    {
+        onUpgrade(db, oldVersion, newVersion);
+    }
+}
diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryData.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryData.java
new file mode 100644 (file)
index 0000000..24c69bc
--- /dev/null
@@ -0,0 +1,25 @@
+package net.osdn.gokigen.joggingtimer.storage.contract;
+
+import android.provider.BaseColumns;
+
+/**
+ *   TimeEntryData
+ *
+ */
+public final class TimeEntryData
+{
+    private TimeEntryData() { }
+
+    /* Inner class that defines the table contents */
+    public static class EntryData implements BaseColumns
+    {
+        public static final String TABLE_NAME = "time_entry";
+        public static final String COLUMN_NAME_INDEX_ID = "index_id";         // integer
+        public static final String COLUMN_NAME_ICON_ID = "icon_id";           // integer
+        public static final String COLUMN_NAME_MEMO_ID = "memo_id";           // integer
+        public static final String COLUMN_NAME_GPS_ID = "gps_id";             // integer
+        public static final String COLUMN_NAME_ORDER = "order";               // integer
+        public static final String COLUMN_NAME_RECORD_TYPE = "record_type"; // integer
+        public static final String COLUMN_NAME_TIME_ENTRY = "time_entry";   // integer
+    }
+}
diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryGps.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryGps.java
new file mode 100644 (file)
index 0000000..ef0e235
--- /dev/null
@@ -0,0 +1,21 @@
+package net.osdn.gokigen.joggingtimer.storage.contract;
+
+
+import android.provider.BaseColumns;
+
+public final class TimeEntryGps
+{
+    private TimeEntryGps() { }
+
+    /* Inner class that defines the table contents */
+    public static class EntryGps implements BaseColumns
+    {
+        public static final String TABLE_NAME = "gps";
+        public static final String COLUMN_NAME_DATETIME = "datetime";    // integer(long)
+        public static final String COLUMN_NAME_LONGITUDE = "longitude";  // real(double)
+        public static final String COLUMN_NAME_LATITUDE = "latitude";    // real(double)
+        public static final String COLUMN_NAME_ALTITUDE = "altitude";    // real(double)
+        public static final String COLUMN_NAME_SPEED = "speed";           // real(float)
+        public static final String COLUMN_NAME_MEMO = "memo";             // text(string)
+    }
+}
diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryIndex.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryIndex.java
new file mode 100644 (file)
index 0000000..5d045cd
--- /dev/null
@@ -0,0 +1,20 @@
+package net.osdn.gokigen.joggingtimer.storage.contract;
+
+import android.provider.BaseColumns;
+
+public final class TimeEntryIndex
+{
+    private TimeEntryIndex() { }
+
+    /* Inner class that defines the table contents */
+    public static class EntryIndex implements BaseColumns
+    {
+        public static final String TABLE_NAME = "index";
+        public static final String COLUMN_NAME_TITLE = "title";               // text(string)
+        public static final String COLUMN_NAME_MEMO  = "memo";                // text(string)
+        public static final String COLUMN_NAME_ICON_ID = "icon_id";          // integer(int)
+        public static final String COLUMN_NAME_START_TIME = "start_time";   // integer(long)
+        public static final String COLUMN_NAME_TIME_DURATION = "duration";  // integer(long)
+    }
+
+}
diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryMemo.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/contract/TimeEntryMemo.java
new file mode 100644 (file)
index 0000000..403a90e
--- /dev/null
@@ -0,0 +1,17 @@
+package net.osdn.gokigen.joggingtimer.storage.contract;
+
+import android.provider.BaseColumns;
+
+public final class TimeEntryMemo
+{
+    private TimeEntryMemo() { }
+
+    /* Inner class that defines the table contents */
+    public static class EntryMemo implements BaseColumns
+    {
+        public static final String TABLE_NAME = "memo";
+        public static final String COLUMN_NAME_DATETIME = "datetime";   // integer(long)
+        public static final String COLUMN_NAME_ICON = "icon_id";         // integer
+        public static final String COLUMN_NAME_DATA_MEMO = "memo_data"; // text(string)
+    }
+}