static let bookmark = CoreDataIntormation(
modelName: "Bookmark",
storeFileName: "Bookmark.storedata",
- storeOptions:[NSMigratePersistentStoresAutomaticallyOption: true,
- NSInferMappingModelAutomaticallyOption: true],
+ storeOptions: [NSMigratePersistentStoresAutomaticallyOption: true,
+ NSInferMappingModelAutomaticallyOption: true],
storeType: NSSQLiteStoreType,
deleteAndRetry: false
)
var managedObjectContext: NSManagedObjectContext
}
-extension Bookmark: EntityProvider {
- override class var entityName: String { return "Bookmark" }
-}
-
extension BookmarkDataStore {
func createBookmark() -> Bookmark? {
return insertNewObject(for: Bookmark.entity)
protocol EntityProvider {
associatedtype ObjectType: NSManagedObject = Self
+
static var entityName: String { get }
static var entity: Entity<ObjectType> { get }
}
}
}
-
+// MARK: - Implementations
extension NSManagedObject {
class var entityName: String { return String(describing: self) }
}
+
+// MARK: - KCD model
+extension AirBase: EntityProvider {}
+extension AirBasePlaneInfo: EntityProvider {}
+extension Basic: EntityProvider {}
+extension Deck: EntityProvider {}
+extension KenzoDock: EntityProvider {}
+extension MasterFurniture: EntityProvider {}
+extension MasterMapArea: EntityProvider {}
+extension MasterMapInfo: EntityProvider {}
+extension MasterMission: EntityProvider {}
+extension MasterShip: EntityProvider {}
+extension MasterSlotItem: EntityProvider {}
+extension MasterSType: EntityProvider {}
+extension MasterSlotItemEquipType: EntityProvider {}
+extension MasterUseItem: EntityProvider {}
+extension Material: EntityProvider {}
+extension NyukyoDock: EntityProvider {}
+extension Ship: EntityProvider {}
+extension SlotItem: EntityProvider {}
+extension Quest: EntityProvider {}
+
+// MARK: - LocalData model
+extension DropShipHistory: EntityProvider {}
+extension HiddenDropShipHistory: EntityProvider {}
+extension KaihatuHistory: EntityProvider {}
+extension KenzoHistory: EntityProvider {}
+extension KenzoMark: EntityProvider {}
+
+// MARK: - Temporay model
+extension Battle: EntityProvider {}
+extension Damage: EntityProvider {}
+extension GuardEscaped: EntityProvider {}
+
+// MARK: - Bookmark model
+extension Bookmark: EntityProvider {}
+
+// MARK: - ResourceHistory model
+extension Resource: EntityProvider {}
+
static let local = CoreDataIntormation(
modelName: "LocalData",
storeFileName: "LocalData.storedata",
- storeOptions:[NSMigratePersistentStoresAutomaticallyOption: true,
- NSInferMappingModelAutomaticallyOption: true],
+ storeOptions: [NSMigratePersistentStoresAutomaticallyOption: true,
+ NSInferMappingModelAutomaticallyOption: true],
storeType: NSSQLiteStoreType,
deleteAndRetry: false
)
var managedObjectContext: NSManagedObjectContext
}
-extension DropShipHistory: EntityProvider {
- override class var entityName: String { return String(describing: self) }
-}
-extension HiddenDropShipHistory: EntityProvider {
- override class var entityName: String { return String(describing: self) }
-}
-extension KaihatuHistory: EntityProvider {
- override class var entityName: String { return String(describing: self) }
-}
-extension KenzoHistory: EntityProvider {
- override class var entityName: String { return String(describing: self) }
-}
-extension KenzoMark: EntityProvider {
- override class var entityName: String { return String(describing: self) }
-}
-
extension LocalDataStore {
func unmarkedDropShipHistories(befor days: Int) -> [DropShipHistory] {
let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
static let resourceHistory = CoreDataIntormation(
modelName: "ResourceHistory",
storeFileName: "ResourceHistory.storedata",
- storeOptions:[NSMigratePersistentStoresAutomaticallyOption: true,
- NSInferMappingModelAutomaticallyOption: true],
+ storeOptions: [NSMigratePersistentStoresAutomaticallyOption: true,
+ NSInferMappingModelAutomaticallyOption: true],
storeType: NSSQLiteStoreType,
deleteAndRetry: false
)
static let resourceHistory = CoreDataCore(.resourceHistory)
}
-
class ResourceHistoryDataStore: CoreDataAccessor, CoreDataManager {
static var `default` = ResourceHistoryDataStore(type: .reader)
class func oneTimeEditor() -> ResourceHistoryDataStore {
var managedObjectContext: NSManagedObjectContext
}
-extension Resource: EntityProvider {
- override class var entityName: String { return "Resource" }
-}
-
extension ResourceHistoryDataStore {
func resources(in minites: [Int], older: Date) -> [Resource] {
let p = NSPredicate(format: "minute IN %@ AND date < %@", minites, older as NSDate)
static let kcd = CoreDataIntormation(
modelName: "KCD",
storeFileName: "KCD.storedata",
- storeOptions:[NSMigratePersistentStoresAutomaticallyOption: true,
- NSInferMappingModelAutomaticallyOption: true],
+ storeOptions: [NSMigratePersistentStoresAutomaticallyOption: true,
+ NSInferMappingModelAutomaticallyOption: true],
storeType: NSSQLiteStoreType,
deleteAndRetry: true
)
static let kcd = CoreDataCore(.kcd)
}
-
class ServerDataStore: CoreDataAccessor, CoreDataManager {
static var `default` = ServerDataStore(type: .reader)
class func oneTimeEditor() -> ServerDataStore {
var managedObjectContext: NSManagedObjectContext
}
-extension AirBase: EntityProvider {
- override class var entityName: String { return "AirBase" }
-}
-extension AirBasePlaneInfo: EntityProvider {
- override class var entityName: String { return "AirBasePlaneInfo" }
-}
-extension Basic: EntityProvider {
- override class var entityName: String { return "Basic" }
-}
-extension Deck: EntityProvider {
- override class var entityName: String { return "Deck" }
-}
-extension KenzoDock: EntityProvider {
- override class var entityName: String { return "KenzoDock" }
-}
-extension MasterFurniture: EntityProvider {
- override class var entityName: String { return "MasterFurniture" }
-}
-extension MasterMapArea: EntityProvider {
- override class var entityName: String { return "MasterMapArea" }
-}
-extension MasterMapInfo: EntityProvider {
- override class var entityName: String { return "MasterMapInfo" }
-}
-extension MasterMission: EntityProvider {
- override class var entityName: String { return "MasterMission" }
-}
-extension MasterShip: EntityProvider {
- override class var entityName: String { return "MasterShip" }
-}
-extension MasterSlotItem: EntityProvider {
- override class var entityName: String { return "MasterSlotItem" }
-}
-extension MasterSType: EntityProvider {
- override class var entityName: String { return "MasterSType" }
-}
-extension MasterSlotItemEquipType: EntityProvider {
- override class var entityName: String { return "MasterSlotItemEquipType" }
-}
-extension MasterUseItem: EntityProvider {
- override class var entityName: String { return "MasterUseItem" }
-}
-extension Material: EntityProvider {
- override class var entityName: String { return "Material" }
-}
-extension NyukyoDock: EntityProvider {
- override class var entityName: String { return "NyukyoDock" }
-}
-extension Ship: EntityProvider {
- override class var entityName: String { return "Ship" }
-}
-extension SlotItem: EntityProvider {
- override class var entityName: String { return "SlotItem" }
-}
-extension Quest: EntityProvider {
- override class var entityName: String { return "Quest" }
-}
-
extension ServerDataStore {
func airBases() -> [AirBase] {
guard let airbase = try? objects(with: AirBase.entity)
static let temporary = CoreDataIntormation(
modelName: "Temporary",
storeFileName: ":memory:",
- storeOptions:[:],
+ storeOptions: [:],
storeType: NSInMemoryStoreType,
deleteAndRetry: false
)
static let temporary = CoreDataCore(.temporary)
}
-
class TemporaryDataStore: CoreDataAccessor, CoreDataManager {
static var `default` = TemporaryDataStore(type: .reader)
class func oneTimeEditor() -> TemporaryDataStore {
var managedObjectContext: NSManagedObjectContext
}
-extension Battle: EntityProvider {
- override class var entityName: String { return "Battle" }
-}
-extension Damage: EntityProvider {
- override class var entityName: String { return "Damage" }
-}
-extension GuardEscaped: EntityProvider {
- override class var entityName: String { return "GuardEscaped" }
-}
-
extension TemporaryDataStore {
func battle() -> Battle? {
return battles().first