2 // TemporaryDataStore.swift
5 // Created by Hori,Masaki on 2017/01/06.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 extension CoreDataIntormation {
12 static let temporary = CoreDataIntormation(
13 modelName: "Temporary",
14 storeFileName: ":memory:",
16 storeType: NSInMemoryStoreType,
20 extension CoreDataCore {
21 static let temporary = CoreDataCore(.temporary)
24 class TemporaryDataStore: CoreDataAccessor, CoreDataManager {
25 static var `default` = TemporaryDataStore(type: .reader)
26 class func oneTimeEditor() -> TemporaryDataStore {
27 return TemporaryDataStore(type: .editor)
30 required init(type: CoreDataManagerType) {
31 managedObjectContext =
32 type == .reader ? core.parentManagedObjectContext
33 : core.editorManagedObjectContext()
39 let core = CoreDataCore.temporary
40 var managedObjectContext: NSManagedObjectContext
43 extension TemporaryDataStore {
44 func battle() -> Battle? {
45 return battles().first
47 func battles() -> [Battle] {
48 guard let battles = try? self.objects(with: Battle.entity)
53 battles().forEach { delete($0) }
55 func createBattle() -> Battle? {
56 return insertNewObject(for: Battle.entity)
59 func sortedDamagesById() -> [Damage] {
60 let sortDescriptor = NSSortDescriptor(key: "id", ascending: true)
61 guard let damages = try? objects(with: Damage.entity, sortDescriptors: [sortDescriptor])
65 func damages() -> [Damage] {
66 guard let damages = try? objects(with: Damage.entity)
70 func createDamage() -> Damage? {
71 return insertNewObject(for: Damage.entity)
74 func guardEscaped() -> [GuardEscaped] {
75 guard let escapeds = try? objects(with: GuardEscaped.entity)
79 func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
80 let p = NSPredicate(format: "shipID = %ld AND ensured = TRUE", shipId)
81 guard let escapes = try? objects(with: GuardEscaped.entity, predicate: p)
85 func notEnsuredGuardEscaped() -> [GuardEscaped] {
86 let predicate = NSPredicate(format: "ensured = FALSE")
87 guard let escapeds = try? objects(with: GuardEscaped.entity, predicate: predicate)
91 func createGuardEscaped() -> GuardEscaped? {
92 return insertNewObject(for: GuardEscaped.entity)