Guest User

Untitled

a guest
Nov 19th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. package com.wsmodule.structure.repository.local.database;
  2.  
  3. import android.arch.persistence.db.SupportSQLiteDatabase;
  4. import android.arch.persistence.room.Database;
  5. import android.arch.persistence.room.Room;
  6. import android.arch.persistence.room.migration.Migration;
  7. import android.content.Context;
  8.  
  9. import com.core.module.repository.local.FileEntity;
  10. import com.core.module.repository.local.TranslationEntity;
  11. import com.wsmodule.structure.manager.database.BaseRoomDatabase;
  12. import com.wsmodule.structure.repository.local.entity.ApkEntity;
  13. import com.wsmodule.structure.repository.local.entity.ConfigEntity;
  14. import com.wsmodule.structure.repository.local.entity.DeviceSettingsEntity;
  15. import com.wsmodule.structure.repository.local.entity.HamburgerEntity;
  16. import com.wsmodule.structure.repository.local.entity.HelpDeskEntity;
  17. import com.wsmodule.structure.repository.local.entity.LayoutEntity;
  18. import com.wsmodule.structure.repository.local.entity.MeetingTypeEntity;
  19. import com.wsmodule.structure.repository.local.entity.ModuleEntity;
  20. import com.wsmodule.structure.repository.local.entity.RequiredClientFieldEntity;
  21. import com.wsmodule.structure.repository.local.entity.RequiredSummaryFieldEntity;
  22. import com.wsmodule.structure.repository.local.entity.ScreenEntity;
  23. import com.wsmodule.structure.repository.local.entity.TopMenuEntity;
  24. import com.wsmodule.structure.repository.local.query.StructureQuery;
  25.  
  26. @Database(entities = {
  27. ModuleEntity.class,
  28. TranslationEntity.class,
  29. ScreenEntity.class,
  30. TopMenuEntity.class,
  31. MeetingTypeEntity.class,
  32. ConfigEntity.class,
  33. ApkEntity.class,
  34. HamburgerEntity.class,
  35. RequiredClientFieldEntity.class,
  36. RequiredSummaryFieldEntity.class,
  37. LayoutEntity.class,
  38. FileEntity.class,
  39. DeviceSettingsEntity.class,
  40. HelpDeskEntity.class},
  41. version = 41, exportSchema = false)
  42. public abstract class StructureDatabase extends BaseRoomDatabase {
  43.  
  44. private final static String NAME = "structure.db";
  45.  
  46. private static StructureDatabase STRUCTURE_DATABASE = null;
  47.  
  48. public abstract StructureQuery query();
  49.  
  50. public synchronized static StructureDatabase getInstance(Context context) {
  51. if (StructureDatabase.STRUCTURE_DATABASE == null) {
  52. StructureDatabase.STRUCTURE_DATABASE = Room.databaseBuilder(context,
  53. StructureDatabase.class, NAME)
  54. .allowMainThreadQueries()
  55. .openHelperFactory(getFactory())
  56. .addMigrations(MIGRATION_01)
  57. .addMigrations(MIGRATION_02)
  58. .build();
  59. }
  60. return StructureDatabase.STRUCTURE_DATABASE;
  61. }
  62.  
  63. private final static Migration MIGRATION_01 = new Migration(30, 40) {
  64.  
  65. @Override
  66. public void migrate(SupportSQLiteDatabase database) {
  67. database.execSQL("ALTER TABLE 'ConfigEntity' ADD 'can_attach_files' INTEGER NOT NULL DEFAULT 1");
  68. }
  69. };
  70.  
  71. private final static Migration MIGRATION_02 = new Migration(40, 41) {
  72.  
  73. @Override
  74. public void migrate(SupportSQLiteDatabase database) {
  75. database.execSQL("CREATE TABLE 'ApkEntity' ('id' INTEGER NOT NULL DEFAULT 1, "
  76. + "'version' TEXT,"
  77. + "'last_update' TEXT,"
  78. + "'name' TEXT,"
  79. + "'url' TEXT,"
  80. + "PRIMARY KEY('id'))");
  81. }
  82. };
  83. }
Add Comment
Please, Sign In to add comment