OSDN Git Service

CoreDataManager各クラスからAccessorを分離
authormasakih <masakih@users.sourceforge.jp>
Wed, 25 Oct 2017 12:36:54 +0000 (21:36 +0900)
committermasakih <masakih@users.sourceforge.jp>
Wed, 25 Oct 2017 12:36:54 +0000 (21:36 +0900)
KCD.xcodeproj/project.pbxproj
KCD/BookmarkDataStore.swift
KCD/BookmarkDataStoreAccessor.swift [new file with mode: 0644]
KCD/LocalDataStore.swift
KCD/LocalDataStoreAccessor.swift [new file with mode: 0644]
KCD/ResourceHistoryDataStore.swift
KCD/ResourceHistoryDataStoreAccessor.swift [new file with mode: 0644]
KCD/ServerDataStore.swift
KCD/ServerDataStoreAccessor.swift [new file with mode: 0644]
KCD/TemporaryDataStore.swift
KCD/TemporaryDataStoreAccessor.swift [new file with mode: 0644]

index b0fd44a..58b4634 100644 (file)
                F4FF44C71F98DA6600039F21 /* NormalBattleTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44C61F98DA6600039F21 /* NormalBattleTest.swift */; };
                F4FF44C81F98DB1D00039F21 /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4EFBCA21E7D439A00DE4A58 /* SwiftyJSON.framework */; };
                F4FF44CC1F9E41F600039F21 /* ShipStatusTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44CB1F9E41F600039F21 /* ShipStatusTest.swift */; };
+               F4FF44CE1FA0BA1D00039F21 /* ServerDataStoreAccessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44CD1FA0BA1D00039F21 /* ServerDataStoreAccessor.swift */; };
+               F4FF44D01FA0BAAD00039F21 /* LocalDataStoreAccessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44CF1FA0BAAD00039F21 /* LocalDataStoreAccessor.swift */; };
+               F4FF44D21FA0BB1C00039F21 /* TemporaryDataStoreAccessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44D11FA0BB1C00039F21 /* TemporaryDataStoreAccessor.swift */; };
+               F4FF44D41FA0BB4D00039F21 /* BookmarkDataStoreAccessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44D31FA0BB4D00039F21 /* BookmarkDataStoreAccessor.swift */; };
+               F4FF44D61FA0BB7200039F21 /* ResourceHistoryDataStoreAccessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF44D51FA0BB7200039F21 /* ResourceHistoryDataStoreAccessor.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
                F4FC3E951E46AC3000E41228 /* TSVSupport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TSVSupport.swift; sourceTree = "<group>"; };
                F4FF44C61F98DA6600039F21 /* NormalBattleTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NormalBattleTest.swift; sourceTree = "<group>"; };
                F4FF44CB1F9E41F600039F21 /* ShipStatusTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShipStatusTest.swift; sourceTree = "<group>"; };
+               F4FF44CD1FA0BA1D00039F21 /* ServerDataStoreAccessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerDataStoreAccessor.swift; sourceTree = "<group>"; };
+               F4FF44CF1FA0BAAD00039F21 /* LocalDataStoreAccessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalDataStoreAccessor.swift; sourceTree = "<group>"; };
+               F4FF44D11FA0BB1C00039F21 /* TemporaryDataStoreAccessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemporaryDataStoreAccessor.swift; sourceTree = "<group>"; };
+               F4FF44D31FA0BB4D00039F21 /* BookmarkDataStoreAccessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkDataStoreAccessor.swift; sourceTree = "<group>"; };
+               F4FF44D51FA0BB7200039F21 /* ResourceHistoryDataStoreAccessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResourceHistoryDataStoreAccessor.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                        children = (
                                F46F104718ABAC910063E503 /* KCD.xcdatamodeld */,
                                F47215AF1E1FEACC0083D3BC /* ServerDataStore.swift */,
+                               F4FF44CD1FA0BA1D00039F21 /* ServerDataStoreAccessor.swift */,
                                F42A8FDF1E40CC050099DC1D /* AirBase.swift */,
                                F42A8FE11E40D0900099DC1D /* AirBasePlaneInfo.swift */,
                                F42CFE1F1E3CDE7E000B4F9B /* Basic.swift */,
                        children = (
                                F4E7802C18DC3AF00011BC4C /* LocalData.xcdatamodeld */,
                                F47215A51E1F84B40083D3BC /* LocalDataStore.swift */,
+                               F4FF44CF1FA0BAAD00039F21 /* LocalDataStoreAccessor.swift */,
                                F42A8FE31E41FD6F0099DC1D /* DropShipHistory.swift */,
                                F4BDEEB71E740D9300D689AE /* HiddenDropShipHistory.swift */,
                                F42A8FE51E420A360099DC1D /* KaihatuHistory.swift */,
                        children = (
                                F4AA05F9192B92C700844688 /* Temporary.xcdatamodeld */,
                                F47215AB1E1FA2460083D3BC /* TemporaryDataStore.swift */,
+                               F4FF44D11FA0BB1C00039F21 /* TemporaryDataStoreAccessor.swift */,
                                F42A8FEB1E4354F50099DC1D /* Battle.swift */,
                                F42A8FED1E435E330099DC1D /* Damage.swift */,
                                F4FC3E8B1E43660400E41228 /* GuardEscaped.swift */,
                        children = (
                                F495462C1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld */,
                                F47215A71E1F947A0083D3BC /* BookmarkDataStore.swift */,
+                               F4FF44D31FA0BB4D00039F21 /* BookmarkDataStoreAccessor.swift */,
                                F42CFE1B1E3CB495000B4F9B /* Bookmark.swift */,
                        );
                        name = Bookmark;
                        children = (
                                F47178481B6F9B5600F5E59D /* ResourceHistory.xcdatamodeld */,
                                F47215A91E1F96B60083D3BC /* ResourceHistoryDataStore.swift */,
+                               F4FF44D51FA0BB7200039F21 /* ResourceHistoryDataStoreAccessor.swift */,
                                F42CFE1D1E3CCCC2000B4F9B /* Resource.swift */,
                        );
                        name = ResourceHistory;
                                F4AA592A1E1D1387001667AF /* IgnoreZeroTransformer.swift in Sources */,
                                F4AC136D1E0802C000851147 /* PreferencePanelController.swift in Sources */,
                                F44BC6E91E232B15004644E3 /* KaisouLockCommand.swift in Sources */,
+                               F4FF44D41FA0BB4D00039F21 /* BookmarkDataStoreAccessor.swift in Sources */,
                                F44BC6EF1E239FB1004644E3 /* RemodelSlotCommand.swift in Sources */,
                                F42A8FD41E3DD57E0099DC1D /* MasterSlotItemEquipType.swift in Sources */,
                                F4AA59161E1C9C5D001667AF /* ValueTransformerRegister.swift in Sources */,
                                F42A8FD61E3DE2C60099DC1D /* Material.swift in Sources */,
                                F491A4BC1E4B523C00D1E067 /* ApplicationDirecrories.swift in Sources */,
                                F4E5FF141E17F93B0026868C /* BroserWindowController.swift in Sources */,
+                               F4FF44D01FA0BAAD00039F21 /* LocalDataStoreAccessor.swift in Sources */,
                                F4CF25BA1E34EB6600C02A66 /* BookmarkManager.swift in Sources */,
                                F44BC7051E2660E4004644E3 /* StoreCreateSlotItemHistoryCommand.swift in Sources */,
                                F4EE4ADA1F18F66A00AD92B4 /* DeckBuilder.swift in Sources */,
                                F44BC6E71E231534004644E3 /* SlotResetCommand.swift in Sources */,
                                F42A8FEC1E4354F50099DC1D /* Battle.swift in Sources */,
                                F4AA59321E1D211C001667AF /* SlotitemNameTransformer.swift in Sources */,
+                               F4FF44CE1FA0BA1D00039F21 /* ServerDataStoreAccessor.swift in Sources */,
                                F4A0D7151E2FB11F00224DCE /* MapStartCommand.swift in Sources */,
                                F44BC6E51E23082B004644E3 /* CombinedCommand.swift in Sources */,
                                F4AA59401E1E23EC001667AF /* HistoryMarkTransformer.swift in Sources */,
                                F4048A9D1E18D75E008ACFD6 /* DamageView.swift in Sources */,
                                F44BC6ED1E238577004644E3 /* ShipDeckCommand.swift in Sources */,
                                F490978D1E1BA64E0085A45D /* GuardEscapedView.swift in Sources */,
+                               F4FF44D61FA0BB7200039F21 /* ResourceHistoryDataStoreAccessor.swift in Sources */,
                                F4FC3E941E44A5D600E41228 /* AppDelegate.swift in Sources */,
                                F44BC71D1E29DF32004644E3 /* MemberNDockCommand.swift in Sources */,
                                F42CFE1E1E3CCCC2000B4F9B /* Resource.swift in Sources */,
                                F4BDEEB01E72D2D700D689AE /* HistoryTableViewController.swift in Sources */,
                                F4EE4AD81F18F43700AD92B4 /* DeckBuilderStructure.swift in Sources */,
                                F45FBB921E129BAE000E72B9 /* FleetViewController.swift in Sources */,
+                               F4FF44D21FA0BB1C00039F21 /* TemporaryDataStoreAccessor.swift in Sources */,
                                F4AA59501E1E4D18001667AF /* ShipWindowController.swift in Sources */,
                                F42CFE181E3C12AA000B4F9B /* ScreenshotInformation.swift in Sources */,
                                F44BC7371E2A4258004644E3 /* SetPlaneCommand.swift in Sources */,
index 66bf350..ad5f9a5 100644 (file)
@@ -31,11 +31,3 @@ final class BookmarkDataStore: CoreDataManager {
     
     let context: NSManagedObjectContext
 }
-
-extension BookmarkDataStore {
-    
-    func createBookmark() -> Bookmark? {
-        
-        return insertNewObject(for: Bookmark.entity)
-    }
-}
diff --git a/KCD/BookmarkDataStoreAccessor.swift b/KCD/BookmarkDataStoreAccessor.swift
new file mode 100644 (file)
index 0000000..ab18b1d
--- /dev/null
@@ -0,0 +1,15 @@
+//
+//  BookmarkDataStoreAccessor.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/10/25.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+extension BookmarkDataStore {
+    
+    func createBookmark() -> Bookmark? {
+        
+        return insertNewObject(for: Bookmark.entity)
+    }
+}
index 2708e51..44bffee 100644 (file)
@@ -31,117 +31,3 @@ final class LocalDataStore: CoreDataManager {
     
     let context: NSManagedObjectContext
 }
-
-extension LocalDataStore {
-    
-    func unmarkedDropShipHistories(befor days: Int) -> [DropShipHistory] {
-        
-        let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
-        let predicate = NSPredicate
-            .and([
-                NSPredicate(#keyPath(DropShipHistory.date), lessThan: date),
-                NSPredicate(#keyPath(DropShipHistory.mark), equal: 0)
-                    .or(.isNil(#keyPath(DropShipHistory.mark))),
-                NSPredicate(#keyPath(DropShipHistory.mapArea), valuesIn: ["1", "2", "3", "4", "5", "6", "7", "8", "9"])
-                ])
-        
-        guard let dropHistories = try? objects(of: DropShipHistory.entity, predicate: predicate) else { return [] }
-        
-        return dropHistories
-    }
-    
-    func createDropShipHistory() -> DropShipHistory? {
-        
-        return insertNewObject(for: DropShipHistory.entity)
-    }
-    
-    func kaihatuHistories() -> [KaihatuHistory] {
-        
-        guard let kaihatuHistories = try? objects(of: KaihatuHistory.entity) else { return [] }
-        
-        return kaihatuHistories
-    }
-    
-    func unmarkedKaihatuHistories(befor days: Int) -> [KaihatuHistory] {
-        
-        let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
-        let predicate = NSPredicate
-            .and([
-                NSPredicate(#keyPath(KaihatuHistory.date), lessThan: date),
-                NSPredicate(#keyPath(KaihatuHistory.mark), equal: 0)
-                    .or(.isNil(#keyPath(KaihatuHistory.mark)))
-                ])
-        
-        guard let kaihatuHistories = try? objects(of: KaihatuHistory.entity, predicate: predicate) else { return [] }
-        
-        return kaihatuHistories
-    }
-    
-    func createKaihatuHistory() -> KaihatuHistory? {
-        
-        return insertNewObject(for: KaihatuHistory.entity)
-    }
-    
-    func kenzoMark(byDockId dockId: Int) -> KenzoMark? {
-        
-        let predicate = NSPredicate(#keyPath(KenzoMark.kDockId), equal: dockId)
-        
-        guard let kenzoMarks = try? objects(of: KenzoMark.entity, predicate: predicate) else { return nil }
-        
-        return kenzoMarks.first
-    }
-    
-    // swiftlint:disable function_parameter_count
-    func kenzoMark(fuel: Int, bull: Int, steel: Int, bauxite: Int, kaihatusizai: Int, kDockId: Int, shipId: Int) -> KenzoMark? {
-        
-        let predicate = NSPredicate.empty
-            .and(NSPredicate(#keyPath(KenzoMark.fuel), equal: fuel))
-            .and(NSPredicate(#keyPath(KenzoMark.bull), equal: bull))
-            .and(NSPredicate(#keyPath(KenzoMark.steel), equal: steel))
-            .and(NSPredicate(#keyPath(KenzoMark.bauxite), equal: bauxite))
-            .and(NSPredicate(#keyPath(KenzoMark.kaihatusizai), equal: kaihatusizai))
-            .and(NSPredicate(#keyPath(KenzoMark.kDockId), equal: kDockId))
-            .and(NSPredicate(#keyPath(KenzoMark.created_ship_id), equal: shipId))
-        
-        guard let kenzoMarks = try? objects(of: KenzoMark.entity, predicate: predicate) else { return nil }
-        
-        return kenzoMarks.first
-    }
-    
-    func createKenzoMark() -> KenzoMark? {
-        
-        return insertNewObject(for: KenzoMark.entity)
-    }
-    
-    func unmarkedKenzoHistories(befor days: Int) -> [KenzoHistory] {
-        
-        let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
-        let predicate = NSPredicate
-            .and([
-                NSPredicate(#keyPath(KenzoHistory.date), lessThan: date),
-                NSPredicate(#keyPath(KenzoHistory.mark), equal: 0)
-                    .or(.isNil(#keyPath(KenzoHistory.mark)))
-                ])
-        
-        guard let kenzoHistories = try? objects(of: KenzoHistory.entity, predicate: predicate) else { return [] }
-        
-        return kenzoHistories
-    }
-    
-    func createKenzoHistory() -> KenzoHistory? {
-        
-        return insertNewObject(for: KenzoHistory.entity)
-    }
-    
-    func hiddenDropShipHistories() -> [HiddenDropShipHistory] {
-        
-        guard let dropShipHistories = try? objects(of: HiddenDropShipHistory.entity) else { return [] }
-        
-        return dropShipHistories
-    }
-    
-    func createHiddenDropShipHistory() -> HiddenDropShipHistory? {
-        
-        return insertNewObject(for: HiddenDropShipHistory.entity)
-    }
-}
diff --git a/KCD/LocalDataStoreAccessor.swift b/KCD/LocalDataStoreAccessor.swift
new file mode 100644 (file)
index 0000000..09a163c
--- /dev/null
@@ -0,0 +1,121 @@
+//
+//  LocalDataStoreAccessor.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/10/25.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+extension LocalDataStore {
+    
+    func unmarkedDropShipHistories(befor days: Int) -> [DropShipHistory] {
+        
+        let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
+        let predicate = NSPredicate
+            .and([
+                NSPredicate(#keyPath(DropShipHistory.date), lessThan: date),
+                NSPredicate(#keyPath(DropShipHistory.mark), equal: 0)
+                    .or(.isNil(#keyPath(DropShipHistory.mark))),
+                NSPredicate(#keyPath(DropShipHistory.mapArea), valuesIn: ["1", "2", "3", "4", "5", "6", "7", "8", "9"])
+                ])
+        
+        guard let dropHistories = try? objects(of: DropShipHistory.entity, predicate: predicate) else { return [] }
+        
+        return dropHistories
+    }
+    
+    func createDropShipHistory() -> DropShipHistory? {
+        
+        return insertNewObject(for: DropShipHistory.entity)
+    }
+    
+    func kaihatuHistories() -> [KaihatuHistory] {
+        
+        guard let kaihatuHistories = try? objects(of: KaihatuHistory.entity) else { return [] }
+        
+        return kaihatuHistories
+    }
+    
+    func unmarkedKaihatuHistories(befor days: Int) -> [KaihatuHistory] {
+        
+        let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
+        let predicate = NSPredicate
+            .and([
+                NSPredicate(#keyPath(KaihatuHistory.date), lessThan: date),
+                NSPredicate(#keyPath(KaihatuHistory.mark), equal: 0)
+                    .or(.isNil(#keyPath(KaihatuHistory.mark)))
+                ])
+        
+        guard let kaihatuHistories = try? objects(of: KaihatuHistory.entity, predicate: predicate) else { return [] }
+        
+        return kaihatuHistories
+    }
+    
+    func createKaihatuHistory() -> KaihatuHistory? {
+        
+        return insertNewObject(for: KaihatuHistory.entity)
+    }
+    
+    func kenzoMark(byDockId dockId: Int) -> KenzoMark? {
+        
+        let predicate = NSPredicate(#keyPath(KenzoMark.kDockId), equal: dockId)
+        
+        guard let kenzoMarks = try? objects(of: KenzoMark.entity, predicate: predicate) else { return nil }
+        
+        return kenzoMarks.first
+    }
+    
+    // swiftlint:disable function_parameter_count
+    func kenzoMark(fuel: Int, bull: Int, steel: Int, bauxite: Int, kaihatusizai: Int, kDockId: Int, shipId: Int) -> KenzoMark? {
+        
+        let predicate = NSPredicate.empty
+            .and(NSPredicate(#keyPath(KenzoMark.fuel), equal: fuel))
+            .and(NSPredicate(#keyPath(KenzoMark.bull), equal: bull))
+            .and(NSPredicate(#keyPath(KenzoMark.steel), equal: steel))
+            .and(NSPredicate(#keyPath(KenzoMark.bauxite), equal: bauxite))
+            .and(NSPredicate(#keyPath(KenzoMark.kaihatusizai), equal: kaihatusizai))
+            .and(NSPredicate(#keyPath(KenzoMark.kDockId), equal: kDockId))
+            .and(NSPredicate(#keyPath(KenzoMark.created_ship_id), equal: shipId))
+        
+        guard let kenzoMarks = try? objects(of: KenzoMark.entity, predicate: predicate) else { return nil }
+        
+        return kenzoMarks.first
+    }
+    
+    func createKenzoMark() -> KenzoMark? {
+        
+        return insertNewObject(for: KenzoMark.entity)
+    }
+    
+    func unmarkedKenzoHistories(befor days: Int) -> [KenzoHistory] {
+        
+        let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
+        let predicate = NSPredicate
+            .and([
+                NSPredicate(#keyPath(KenzoHistory.date), lessThan: date),
+                NSPredicate(#keyPath(KenzoHistory.mark), equal: 0)
+                    .or(.isNil(#keyPath(KenzoHistory.mark)))
+                ])
+        
+        guard let kenzoHistories = try? objects(of: KenzoHistory.entity, predicate: predicate) else { return [] }
+        
+        return kenzoHistories
+    }
+    
+    func createKenzoHistory() -> KenzoHistory? {
+        
+        return insertNewObject(for: KenzoHistory.entity)
+    }
+    
+    func hiddenDropShipHistories() -> [HiddenDropShipHistory] {
+        
+        guard let dropShipHistories = try? objects(of: HiddenDropShipHistory.entity) else { return [] }
+        
+        return dropShipHistories
+    }
+    
+    func createHiddenDropShipHistory() -> HiddenDropShipHistory? {
+        
+        return insertNewObject(for: HiddenDropShipHistory.entity)
+    }
+}
index 1f415c5..fa25b5a 100644 (file)
@@ -31,22 +31,3 @@ final class ResourceHistoryDataStore: CoreDataManager {
     
     let context: NSManagedObjectContext
 }
-
-extension ResourceHistoryDataStore {
-    
-    func resources(in minites: [Int], older: Date) -> [Resource] {
-        
-        let p = NSPredicate.empty
-            .and(NSPredicate(#keyPath(Resource.minute), valuesIn: minites))
-            .and(NSPredicate(#keyPath(Resource.date), lessThan: older))
-        
-        guard let resources = try? objects(of: Resource.entity, predicate: p) else { return [] }
-        
-        return resources
-    }
-    
-    func createResource() -> Resource? {
-        
-        return insertNewObject(for: Resource.entity)
-    }
-}
diff --git a/KCD/ResourceHistoryDataStoreAccessor.swift b/KCD/ResourceHistoryDataStoreAccessor.swift
new file mode 100644 (file)
index 0000000..d1e53b2
--- /dev/null
@@ -0,0 +1,26 @@
+//
+//  ResourceHistoryDataStoreAccessor.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/10/25.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+extension ResourceHistoryDataStore {
+    
+    func resources(in minites: [Int], older: Date) -> [Resource] {
+        
+        let p = NSPredicate.empty
+            .and(NSPredicate(#keyPath(Resource.minute), valuesIn: minites))
+            .and(NSPredicate(#keyPath(Resource.date), lessThan: older))
+        
+        guard let resources = try? objects(of: Resource.entity, predicate: p) else { return [] }
+        
+        return resources
+    }
+    
+    func createResource() -> Resource? {
+        
+        return insertNewObject(for: Resource.entity)
+    }
+}
index 7d80b32..275a0d1 100644 (file)
@@ -31,344 +31,3 @@ final class ServerDataStore: CoreDataManager {
     
     let context: NSManagedObjectContext
 }
-
-extension ServerDataStore {
-    
-    func airBases() -> [AirBase] {
-        
-        guard let airbase = try? objects(of: AirBase.entity) else { return [] }
-        
-        return airbase
-    }
-    
-    func airBase(area: Int, base: Int) -> AirBase? {
-        
-        let p = NSPredicate.empty
-            .and(NSPredicate(#keyPath(AirBase.area_id), equal: area))
-            .and(NSPredicate(#keyPath(AirBase.rid), equal: base))
-        
-        guard let airBases = try? objects(of: AirBase.entity, predicate: p) else { return nil }
-        
-        return airBases.first
-    }
-    
-    func createAirBasePlaneInfo() -> AirBasePlaneInfo? {
-        
-        return insertNewObject(for: AirBasePlaneInfo.entity)
-    }
-    
-    func basic() -> Basic? {
-        
-        guard let basics = try? objects(of: Basic.entity) else { return nil }
-        
-        return basics.first
-    }
-    
-    func createBasic() -> Basic? {
-        
-        return insertNewObject(for: Basic.entity)
-    }
-    
-    func decksSortedById() -> [Deck] {
-        
-        let sortDec = NSSortDescriptor(key: #keyPath(Deck.id), ascending: true)
-        
-        guard let decks = try? objects(of: Deck.entity, sortDescriptors: [sortDec]) else { return [] }
-        
-        return decks
-    }
-    
-    func deck(by id: Int) -> Deck? {
-        
-        let p = NSPredicate(#keyPath(Deck.id), equal: id)
-        
-        guard let decks = try? objects(of: Deck.entity, predicate: p) else { return nil }
-        
-        return decks.first
-    }
-    
-    func kenzoDock(by dockId: Int) -> KenzoDock? {
-        
-        let dockPredicate = NSPredicate(#keyPath(KenzoDock.id), equal: dockId)
-        
-        guard let kenzoDocks = try? objects(of: KenzoDock.entity, predicate: dockPredicate) else { return nil }
-        
-        return kenzoDocks.first
-    }
-    
-    func mapArea(by id: Int) -> MasterMapArea? {
-        
-        let predicate = NSPredicate(#keyPath(MasterMapArea.id), equal: id)
-        guard let mapAreas = try? objects(of: MasterMapArea.entity, predicate: predicate) else { return nil }
-        
-        return mapAreas.first
-    }
-    
-    func mapInfo(area: Int, no: Int) -> MasterMapInfo? {
-        
-        let predicate = NSPredicate.empty
-            .and(NSPredicate(#keyPath(MasterMapInfo.maparea_id), equal: area))
-            .and(NSPredicate(#keyPath(MasterMapInfo.no), equal: no))
-        
-        guard let mapInfos = try? objects(of: MasterMapInfo.entity, predicate: predicate) else { return nil }
-        
-        return mapInfos.first
-    }
-    
-    func masterMission(by id: Int) -> MasterMission? {
-        
-        let p = NSPredicate(#keyPath(MasterMission.id), equal: id)
-        
-        guard let missions = try? objects(of: MasterMission.entity, predicate: p) else { return nil }
-        
-        return missions.first
-    }
-    
-    func masterShips() -> [MasterShip] {
-        
-        guard let ships = try? objects(of: MasterShip.entity) else { return [] }
-        
-        return ships
-    }
-    
-    func sortedMasterShipsById() -> [MasterShip] {
-        
-        let sortDesc = NSSortDescriptor(key: #keyPath(MasterShip.id), ascending: true)
-        
-        guard let ships = try? objects(of: MasterShip.entity, sortDescriptors: [sortDesc]) else { return [] }
-        
-        return ships
-    }
-    
-    func masterShip(by id: Int) -> MasterShip? {
-        
-        let p = NSPredicate(#keyPath(MasterShip.id), equal: id)
-        
-        guard let ships = try? objects(of: MasterShip.entity, predicate: p) else { return nil }
-        
-        return ships.first
-    }
-    
-    func sortedMasterSlotItemsById() -> [MasterSlotItem] {
-        
-        let sortDesc = NSSortDescriptor(key: #keyPath(MasterSlotItem.id), ascending: true)
-        
-        guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, sortDescriptors: [sortDesc]) else { return [] }
-        
-        return masterSlotItems
-    }
-    
-    func masterSlotItems() -> [MasterSlotItem] {
-        
-        guard let masterSlotItems = try? objects(of: MasterSlotItem.entity) else { return [] }
-        
-        return masterSlotItems
-    }
-    
-    func masterSlotItem(by id: Int) -> MasterSlotItem? {
-        
-        let p = NSPredicate(#keyPath(MasterSlotItem.id), equal: id)
-        
-        guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, predicate: p) else { return nil }
-        
-        return masterSlotItems.first
-    }
-    
-    func masterSlotItemEquipType(by id: Int) -> MasterSlotItemEquipType? {
-        
-        let predicate = NSPredicate(#keyPath(MasterSlotItemEquipType.id), equal: id)
-        
-        guard let types = try? objects(of: MasterSlotItemEquipType.entity, predicate: predicate) else { return nil }
-        
-        return types.first
-    }
-    
-    func masterSTypes() -> [MasterSType] {
-        
-        guard let masterSTypes = try? objects(of: MasterSType.entity) else { return [] }
-        
-        return masterSTypes
-    }
-    
-    func sortedMasterSTypesById() -> [MasterSType] {
-        
-        let sortDesc = NSSortDescriptor(key: #keyPath(MasterSType.id), ascending: true)
-        
-        guard let masterSTypes = try? objects(of: MasterSType.entity, sortDescriptors: [sortDesc]) else { return [] }
-        
-        return masterSTypes
-    }
-    
-    func material() -> Material? {
-        
-        guard let materials = try? objects(of: Material.entity) else { return nil }
-        
-        return materials.first
-    }
-    
-    func createMaterial() -> Material? {
-        
-        return insertNewObject(for: Material.entity)
-    }
-    
-    func nyukyoDock(by id: Int) -> NyukyoDock? {
-        
-        let p = NSPredicate(#keyPath(NyukyoDock.id), equal: id)
-        
-        guard let ndocks = try? objects(of: NyukyoDock.entity, predicate: p) else { return nil }
-        
-        return ndocks.first
-    }
-    
-    func ships(byDeckId deckId: Int) -> [Ship] {
-        
-        let predicate = NSPredicate(#keyPath(Ship.id), equal: deckId)
-        
-        guard let decks = try? objects(of: Deck.entity, predicate: predicate) else { return [] }
-        guard let deck = decks.first else { return [] }
-        
-        return deck[0...5]
-    }
-    
-    func ship(by shipId: Int) -> Ship? {
-        
-        if shipId < 1 { return nil }
-        
-        let predicate = NSPredicate(#keyPath(Ship.id), equal: shipId)
-        
-        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return nil }
-        
-        return ships.first
-    }
-    
-    func ships(by shipId: Int) -> [Ship] {
-        
-        let predicate = NSPredicate(#keyPath(Ship.id), equal: shipId)
-        
-        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
-        
-        return ships
-    }
-    
-    func ships(exclude shipIds: [Int]) -> [Ship] {
-        
-        let predicate = NSPredicate.not(NSPredicate(#keyPath(Ship.id), valuesIn: shipIds))
-        
-        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
-        
-        return ships
-    }
-    
-    func shipsInFleet() -> [Ship] {
-        
-        let predicate = NSPredicate(#keyPath(Ship.fleet), notEqual: 0)
-        
-        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
-        
-        return ships
-    }
-    
-    func createShip() -> Ship? {
-        
-        return insertNewObject(for: Ship.entity)
-    }
-    
-    func masterSlotItemID(by slotItemId: Int) -> Int {
-        
-        if slotItemId < 1 { return 0 }
-        
-        let predicate = NSPredicate(#keyPath(SlotItem.id), equal: slotItemId)
-        
-        guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return 0 }
-        guard let slotItem = slotItems.first else { return 0 }
-        
-        return slotItem.master_slotItem.id
-    }
-    
-    func slotItem(by itemId: Int) -> SlotItem? {
-        
-        let p = NSPredicate(#keyPath(SlotItem.id), equal: itemId)
-        
-        guard let slotItems = try? objects(of: SlotItem.entity, predicate: p) else { return nil }
-        
-        return slotItems.first
-    }
-    
-    func sortedSlotItemsById() -> [SlotItem] {
-        
-        let sortDesc = NSSortDescriptor(key: #keyPath(SlotItem.id), ascending: true)
-        
-        guard let slotItems = try? objects(of: SlotItem.entity, sortDescriptors: [sortDesc]) else { return [] }
-        
-        return slotItems
-    }
-    
-    func slotItems() -> [SlotItem] {
-        
-        guard let slotItems = try? objects(of: SlotItem.entity) else { return [] }
-        
-        return slotItems
-    }
-    
-    func slotItems(in itemIds: [Int]) -> [SlotItem] {
-        
-        let predicate = NSPredicate(#keyPath(SlotItem.id), valuesIn: itemIds)
-        
-        guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return [] }
-        
-        return slotItems
-    }
-    
-    func slotItems(exclude itemIds: [Int]) -> [SlotItem] {
-        
-        let predicate = NSPredicate.not(NSPredicate(#keyPath(SlotItem.id), valuesIn: itemIds))
-        
-        guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return [] }
-        
-        return slotItems
-    }
-    
-    func createSlotItem() -> SlotItem? {
-        
-        return insertNewObject(for: SlotItem.entity)
-    }
-    
-    func quests() -> [Quest] {
-        
-        guard let quests = try? objects(of: Quest.entity) else { return [] }
-        
-        return quests
-    }
-    
-    func quest(by no: Int) -> Quest? {
-        
-        let p = NSPredicate(#keyPath(Quest.no), equal: no)
-        
-        guard let quests = try? objects(of: Quest.entity, predicate: p) else { return nil }
-        
-        return quests.first
-    }
-    
-    func quests(in range: CountableClosedRange<Int>) -> [Quest] {
-        
-        let p = NSPredicate(#keyPath(Quest.no), valuesIn: range.map {$0})
-        
-        guard let quests = try? objects(of: Quest.entity, predicate: p) else { return [] }
-        
-        return quests
-    }
-    
-    func sortedQuestByNo() -> [Quest] {
-        
-        let sortDesc = NSSortDescriptor(key: #keyPath(Quest.no), ascending: true)
-        
-        guard let quests = try? objects(of: Quest.entity, sortDescriptors: [sortDesc]) else { return [] }
-        
-        return quests
-    }
-    
-    func createQuest() -> Quest? {
-        
-        return insertNewObject(for: Quest.entity)
-    }
-}
diff --git a/KCD/ServerDataStoreAccessor.swift b/KCD/ServerDataStoreAccessor.swift
new file mode 100644 (file)
index 0000000..23a1cfb
--- /dev/null
@@ -0,0 +1,348 @@
+//
+//  ServerDataStoreAccessor.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/10/25.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+extension ServerDataStore {
+    
+    func airBases() -> [AirBase] {
+        
+        guard let airbase = try? objects(of: AirBase.entity) else { return [] }
+        
+        return airbase
+    }
+    
+    func airBase(area: Int, base: Int) -> AirBase? {
+        
+        let p = NSPredicate.empty
+            .and(NSPredicate(#keyPath(AirBase.area_id), equal: area))
+            .and(NSPredicate(#keyPath(AirBase.rid), equal: base))
+        
+        guard let airBases = try? objects(of: AirBase.entity, predicate: p) else { return nil }
+        
+        return airBases.first
+    }
+    
+    func createAirBasePlaneInfo() -> AirBasePlaneInfo? {
+        
+        return insertNewObject(for: AirBasePlaneInfo.entity)
+    }
+    
+    func basic() -> Basic? {
+        
+        guard let basics = try? objects(of: Basic.entity) else { return nil }
+        
+        return basics.first
+    }
+    
+    func createBasic() -> Basic? {
+        
+        return insertNewObject(for: Basic.entity)
+    }
+    
+    func decksSortedById() -> [Deck] {
+        
+        let sortDec = NSSortDescriptor(key: #keyPath(Deck.id), ascending: true)
+        
+        guard let decks = try? objects(of: Deck.entity, sortDescriptors: [sortDec]) else { return [] }
+        
+        return decks
+    }
+    
+    func deck(by id: Int) -> Deck? {
+        
+        let p = NSPredicate(#keyPath(Deck.id), equal: id)
+        
+        guard let decks = try? objects(of: Deck.entity, predicate: p) else { return nil }
+        
+        return decks.first
+    }
+    
+    func kenzoDock(by dockId: Int) -> KenzoDock? {
+        
+        let dockPredicate = NSPredicate(#keyPath(KenzoDock.id), equal: dockId)
+        
+        guard let kenzoDocks = try? objects(of: KenzoDock.entity, predicate: dockPredicate) else { return nil }
+        
+        return kenzoDocks.first
+    }
+    
+    func mapArea(by id: Int) -> MasterMapArea? {
+        
+        let predicate = NSPredicate(#keyPath(MasterMapArea.id), equal: id)
+        guard let mapAreas = try? objects(of: MasterMapArea.entity, predicate: predicate) else { return nil }
+        
+        return mapAreas.first
+    }
+    
+    func mapInfo(area: Int, no: Int) -> MasterMapInfo? {
+        
+        let predicate = NSPredicate.empty
+            .and(NSPredicate(#keyPath(MasterMapInfo.maparea_id), equal: area))
+            .and(NSPredicate(#keyPath(MasterMapInfo.no), equal: no))
+        
+        guard let mapInfos = try? objects(of: MasterMapInfo.entity, predicate: predicate) else { return nil }
+        
+        return mapInfos.first
+    }
+    
+    func masterMission(by id: Int) -> MasterMission? {
+        
+        let p = NSPredicate(#keyPath(MasterMission.id), equal: id)
+        
+        guard let missions = try? objects(of: MasterMission.entity, predicate: p) else { return nil }
+        
+        return missions.first
+    }
+    
+    func masterShips() -> [MasterShip] {
+        
+        guard let ships = try? objects(of: MasterShip.entity) else { return [] }
+        
+        return ships
+    }
+    
+    func sortedMasterShipsById() -> [MasterShip] {
+        
+        let sortDesc = NSSortDescriptor(key: #keyPath(MasterShip.id), ascending: true)
+        
+        guard let ships = try? objects(of: MasterShip.entity, sortDescriptors: [sortDesc]) else { return [] }
+        
+        return ships
+    }
+    
+    func masterShip(by id: Int) -> MasterShip? {
+        
+        let p = NSPredicate(#keyPath(MasterShip.id), equal: id)
+        
+        guard let ships = try? objects(of: MasterShip.entity, predicate: p) else { return nil }
+        
+        return ships.first
+    }
+    
+    func sortedMasterSlotItemsById() -> [MasterSlotItem] {
+        
+        let sortDesc = NSSortDescriptor(key: #keyPath(MasterSlotItem.id), ascending: true)
+        
+        guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, sortDescriptors: [sortDesc]) else { return [] }
+        
+        return masterSlotItems
+    }
+    
+    func masterSlotItems() -> [MasterSlotItem] {
+        
+        guard let masterSlotItems = try? objects(of: MasterSlotItem.entity) else { return [] }
+        
+        return masterSlotItems
+    }
+    
+    func masterSlotItem(by id: Int) -> MasterSlotItem? {
+        
+        let p = NSPredicate(#keyPath(MasterSlotItem.id), equal: id)
+        
+        guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, predicate: p) else { return nil }
+        
+        return masterSlotItems.first
+    }
+    
+    func masterSlotItemEquipType(by id: Int) -> MasterSlotItemEquipType? {
+        
+        let predicate = NSPredicate(#keyPath(MasterSlotItemEquipType.id), equal: id)
+        
+        guard let types = try? objects(of: MasterSlotItemEquipType.entity, predicate: predicate) else { return nil }
+        
+        return types.first
+    }
+    
+    func masterSTypes() -> [MasterSType] {
+        
+        guard let masterSTypes = try? objects(of: MasterSType.entity) else { return [] }
+        
+        return masterSTypes
+    }
+    
+    func sortedMasterSTypesById() -> [MasterSType] {
+        
+        let sortDesc = NSSortDescriptor(key: #keyPath(MasterSType.id), ascending: true)
+        
+        guard let masterSTypes = try? objects(of: MasterSType.entity, sortDescriptors: [sortDesc]) else { return [] }
+        
+        return masterSTypes
+    }
+    
+    func material() -> Material? {
+        
+        guard let materials = try? objects(of: Material.entity) else { return nil }
+        
+        return materials.first
+    }
+    
+    func createMaterial() -> Material? {
+        
+        return insertNewObject(for: Material.entity)
+    }
+    
+    func nyukyoDock(by id: Int) -> NyukyoDock? {
+        
+        let p = NSPredicate(#keyPath(NyukyoDock.id), equal: id)
+        
+        guard let ndocks = try? objects(of: NyukyoDock.entity, predicate: p) else { return nil }
+        
+        return ndocks.first
+    }
+    
+    func ships(byDeckId deckId: Int) -> [Ship] {
+        
+        let predicate = NSPredicate(#keyPath(Ship.id), equal: deckId)
+        
+        guard let decks = try? objects(of: Deck.entity, predicate: predicate) else { return [] }
+        guard let deck = decks.first else { return [] }
+        
+        return deck[0...5]
+    }
+    
+    func ship(by shipId: Int) -> Ship? {
+        
+        if shipId < 1 { return nil }
+        
+        let predicate = NSPredicate(#keyPath(Ship.id), equal: shipId)
+        
+        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return nil }
+        
+        return ships.first
+    }
+    
+    func ships(by shipId: Int) -> [Ship] {
+        
+        let predicate = NSPredicate(#keyPath(Ship.id), equal: shipId)
+        
+        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
+        
+        return ships
+    }
+    
+    func ships(exclude shipIds: [Int]) -> [Ship] {
+        
+        let predicate = NSPredicate.not(NSPredicate(#keyPath(Ship.id), valuesIn: shipIds))
+        
+        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
+        
+        return ships
+    }
+    
+    func shipsInFleet() -> [Ship] {
+        
+        let predicate = NSPredicate(#keyPath(Ship.fleet), notEqual: 0)
+        
+        guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
+        
+        return ships
+    }
+    
+    func createShip() -> Ship? {
+        
+        return insertNewObject(for: Ship.entity)
+    }
+    
+    func masterSlotItemID(by slotItemId: Int) -> Int {
+        
+        if slotItemId < 1 { return 0 }
+        
+        let predicate = NSPredicate(#keyPath(SlotItem.id), equal: slotItemId)
+        
+        guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return 0 }
+        guard let slotItem = slotItems.first else { return 0 }
+        
+        return slotItem.master_slotItem.id
+    }
+    
+    func slotItem(by itemId: Int) -> SlotItem? {
+        
+        let p = NSPredicate(#keyPath(SlotItem.id), equal: itemId)
+        
+        guard let slotItems = try? objects(of: SlotItem.entity, predicate: p) else { return nil }
+        
+        return slotItems.first
+    }
+    
+    func sortedSlotItemsById() -> [SlotItem] {
+        
+        let sortDesc = NSSortDescriptor(key: #keyPath(SlotItem.id), ascending: true)
+        
+        guard let slotItems = try? objects(of: SlotItem.entity, sortDescriptors: [sortDesc]) else { return [] }
+        
+        return slotItems
+    }
+    
+    func slotItems() -> [SlotItem] {
+        
+        guard let slotItems = try? objects(of: SlotItem.entity) else { return [] }
+        
+        return slotItems
+    }
+    
+    func slotItems(in itemIds: [Int]) -> [SlotItem] {
+        
+        let predicate = NSPredicate(#keyPath(SlotItem.id), valuesIn: itemIds)
+        
+        guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return [] }
+        
+        return slotItems
+    }
+    
+    func slotItems(exclude itemIds: [Int]) -> [SlotItem] {
+        
+        let predicate = NSPredicate.not(NSPredicate(#keyPath(SlotItem.id), valuesIn: itemIds))
+        
+        guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return [] }
+        
+        return slotItems
+    }
+    
+    func createSlotItem() -> SlotItem? {
+        
+        return insertNewObject(for: SlotItem.entity)
+    }
+    
+    func quests() -> [Quest] {
+        
+        guard let quests = try? objects(of: Quest.entity) else { return [] }
+        
+        return quests
+    }
+    
+    func quest(by no: Int) -> Quest? {
+        
+        let p = NSPredicate(#keyPath(Quest.no), equal: no)
+        
+        guard let quests = try? objects(of: Quest.entity, predicate: p) else { return nil }
+        
+        return quests.first
+    }
+    
+    func quests(in range: CountableClosedRange<Int>) -> [Quest] {
+        
+        let p = NSPredicate(#keyPath(Quest.no), valuesIn: range.map {$0})
+        
+        guard let quests = try? objects(of: Quest.entity, predicate: p) else { return [] }
+        
+        return quests
+    }
+    
+    func sortedQuestByNo() -> [Quest] {
+        
+        let sortDesc = NSSortDescriptor(key: #keyPath(Quest.no), ascending: true)
+        
+        guard let quests = try? objects(of: Quest.entity, sortDescriptors: [sortDesc]) else { return [] }
+        
+        return quests
+    }
+    
+    func createQuest() -> Quest? {
+        
+        return insertNewObject(for: Quest.entity)
+    }
+}
index db2fe65..ec6a1b4 100644 (file)
@@ -34,81 +34,3 @@ final class TemporaryDataStore: CoreDataManager {
     
     let context: NSManagedObjectContext
 }
-
-extension TemporaryDataStore {
-    
-    func battle() -> Battle? {
-        
-        return battles().first
-    }
-    
-    func battles() -> [Battle] {
-        
-        guard let battles = try? self.objects(of: Battle.entity) else { return [] }
-        
-        return battles
-    }
-    
-    func resetBattle() {
-        
-        battles().forEach { delete($0) }
-    }
-    
-    func createBattle() -> Battle? {
-        
-        return insertNewObject(for: Battle.entity)
-    }
-    
-    func sortedDamagesById() -> [Damage] {
-        
-        let sortDescriptor = NSSortDescriptor(key: #keyPath(Damage.id), ascending: true)
-        
-        guard let damages = try? objects(of: Damage.entity, sortDescriptors: [sortDescriptor]) else { return [] }
-        
-        return damages
-    }
-    
-    func damages() -> [Damage] {
-        
-        guard let damages = try? objects(of: Damage.entity) else { return [] }
-        
-        return damages
-    }
-    
-    func createDamage() -> Damage? {
-        
-        return insertNewObject(for: Damage.entity)
-    }
-    
-    func guardEscaped() -> [GuardEscaped] {
-        
-        guard let escapeds = try? objects(of: GuardEscaped.entity) else { return [] }
-        
-        return escapeds
-    }
-    
-    func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
-        
-        let p = NSPredicate.empty
-            .and(NSPredicate(#keyPath(GuardEscaped.shipID), equal: shipId))
-            .and(.false(#keyPath(GuardEscaped.ensured)))
-        
-        guard let escapes = try? objects(of: GuardEscaped.entity, predicate: p) else { return nil }
-        
-        return escapes.first
-    }
-    
-    func notEnsuredGuardEscaped() -> [GuardEscaped] {
-        
-        let predicate = NSPredicate.false(#keyPath(GuardEscaped.ensured))
-        
-        guard let escapeds = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return [] }
-        
-        return escapeds
-    }
-    
-    func createGuardEscaped() -> GuardEscaped? {
-        
-        return insertNewObject(for: GuardEscaped.entity)
-    }
-}
diff --git a/KCD/TemporaryDataStoreAccessor.swift b/KCD/TemporaryDataStoreAccessor.swift
new file mode 100644 (file)
index 0000000..356d68b
--- /dev/null
@@ -0,0 +1,85 @@
+//
+//  TemporaryDataStoreAccessor.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2017/10/25.
+//  Copyright © 2017年 Hori,Masaki. All rights reserved.
+//
+
+extension TemporaryDataStore {
+    
+    func battle() -> Battle? {
+        
+        return battles().first
+    }
+    
+    func battles() -> [Battle] {
+        
+        guard let battles = try? self.objects(of: Battle.entity) else { return [] }
+        
+        return battles
+    }
+    
+    func resetBattle() {
+        
+        battles().forEach { delete($0) }
+    }
+    
+    func createBattle() -> Battle? {
+        
+        return insertNewObject(for: Battle.entity)
+    }
+    
+    func sortedDamagesById() -> [Damage] {
+        
+        let sortDescriptor = NSSortDescriptor(key: #keyPath(Damage.id), ascending: true)
+        
+        guard let damages = try? objects(of: Damage.entity, sortDescriptors: [sortDescriptor]) else { return [] }
+        
+        return damages
+    }
+    
+    func damages() -> [Damage] {
+        
+        guard let damages = try? objects(of: Damage.entity) else { return [] }
+        
+        return damages
+    }
+    
+    func createDamage() -> Damage? {
+        
+        return insertNewObject(for: Damage.entity)
+    }
+    
+    func guardEscaped() -> [GuardEscaped] {
+        
+        guard let escapeds = try? objects(of: GuardEscaped.entity) else { return [] }
+        
+        return escapeds
+    }
+    
+    func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
+        
+        let p = NSPredicate.empty
+            .and(NSPredicate(#keyPath(GuardEscaped.shipID), equal: shipId))
+            .and(.false(#keyPath(GuardEscaped.ensured)))
+        
+        guard let escapes = try? objects(of: GuardEscaped.entity, predicate: p) else { return nil }
+        
+        return escapes.first
+    }
+    
+    func notEnsuredGuardEscaped() -> [GuardEscaped] {
+        
+        let predicate = NSPredicate.false(#keyPath(GuardEscaped.ensured))
+        
+        guard let escapeds = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return [] }
+        
+        return escapeds
+    }
+    
+    func createGuardEscaped() -> GuardEscaped? {
+        
+        return insertNewObject(for: GuardEscaped.entity)
+    }
+}