OSDN Git Service

swiftlint 'line_length'の警告を修正
[kcd/KCD.git] / KCD / LocalDataStore.swift
1 //
2 //  LocalDataStore.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/06.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 extension CoreDataIntormation {
12     static let local = CoreDataIntormation("LocalData")
13 }
14 extension CoreDataCore {
15     static let local = CoreDataCore(.local)
16 }
17
18
19 class LocalDataStore: CoreDataAccessor, CoreDataManager {
20     static var `default` = LocalDataStore(type: .reader)
21     class func oneTimeEditor() -> LocalDataStore {
22         return LocalDataStore(type: .editor)
23     }
24     
25     required init(type: CoreDataManagerType) {
26         managedObjectContext =
27             type == .reader ? core.parentManagedObjectContext
28             : core.editorManagedObjectContext()
29     }
30     deinit {
31         saveActionCore()
32     }
33     
34     let core = CoreDataCore.local
35     var managedObjectContext: NSManagedObjectContext
36 }
37
38 extension LocalDataStore {
39     func unmarkedDropShipHistories(befor days: Int) -> [DropShipHistory] {
40         let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
41         let predicate01 = NSPredicate(format: "date < %@", date as NSDate)
42         let predicate02 = NSPredicate(format: "mark = 0 || mark = nil")
43         let predicate03 = NSPredicate(format: "mapArea IN %@", ["1", "2", "3", "4", "5", "6", "7", "8", "9"])
44         let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [predicate01, predicate02, predicate03])
45         guard let dropHistories = try? objects(with: DropShipHistory.entity, predicate: predicate)
46             else { return [] }
47         return dropHistories
48     }
49     
50     func createDropShipHistory() -> DropShipHistory? {
51         return insertNewObject(for: DropShipHistory.entity)
52     }
53     
54     func kaihatuHistories() -> [KaihatuHistory] {
55         guard let kaihatuHistories = try? objects(with: KaihatuHistory.entity)
56             else { return [] }
57         return kaihatuHistories
58     }
59     func unmarkedKaihatuHistories(befor days: Int) -> [KaihatuHistory] {
60         let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
61         let predicate01 = NSPredicate(format: "date < %@", date as NSDate)
62         let predicate02 = NSPredicate(format: "mark = 0 || mark = nil")
63         let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [predicate01, predicate02])
64         guard let kaihatuHistories = try? objects(with: KaihatuHistory.entity, predicate: predicate)
65             else { return [] }
66         return kaihatuHistories
67     }
68     func createKaihatuHistory() -> KaihatuHistory? {
69         return insertNewObject(for: KaihatuHistory.entity)
70     }
71     
72     func kenzoMark(byDockId dockId: Int) -> KenzoMark? {
73         let predicate = NSPredicate(format: "kDockId = %ld", dockId)
74         guard let kenzoMarks = try? objects(with: KenzoMark.entity, predicate: predicate)
75             else { return nil }
76         return kenzoMarks.first
77     }
78     func kenzoMark(fuel: Int,
79                    bull: Int,
80                    steel: Int,
81                    bauxite: Int,
82                    kaihatusizai: Int,
83                    kDockId: Int,
84                    shipId: Int) -> KenzoMark? {
85         // swiftlint:disable:next line_length
86         let predicate = NSPredicate(format: "fuel = %ld AND bull = %ld AND steel = %ld AND bauxite = %ld AND kaihatusizai = %ld AND kDockId = %ld AND created_ship_id = %ld",
87                                     fuel, bull, steel, bauxite, kaihatusizai, kDockId, shipId)
88         guard let kenzoMarks = try? objects(with: KenzoMark.entity, predicate: predicate)
89             else { return nil }
90         return kenzoMarks.first
91     }
92     func createKenzoMark() -> KenzoMark? {
93         return insertNewObject(for: KenzoMark.entity)
94     }
95     
96     func unmarkedKenzoHistories(befor days: Int) -> [KenzoHistory] {
97         let date = Date(timeIntervalSinceNow: TimeInterval(-1 * days * 24 * 60 * 60))
98         let predicate01 = NSPredicate(format: "date < %@", date as NSDate)
99         let predicate02 = NSPredicate(format: "mark = 0 || mark = nil")
100         let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [predicate01, predicate02])
101         guard let kenzoHistories = try? objects(with: KenzoHistory.entity, predicate: predicate)
102             else { return [] }
103         return kenzoHistories
104     }
105     func createKenzoHistory() -> KenzoHistory? {
106         return insertNewObject(for: KenzoHistory.entity)
107     }
108     
109     func hiddenDropShipHistories() -> [HiddenDropShipHistory] {
110         guard let dropShipHistories = try? objects(with: HiddenDropShipHistory.entity)
111             else { return [] }
112         return dropShipHistories
113     }
114     func createHiddenDropShipHistory() -> HiddenDropShipHistory? {
115         return insertNewObject(for: HiddenDropShipHistory.entity)
116     }
117 }