5 // Created by Hori,Masaki on 2017/03/11.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 struct Entity<T: NSManagedObject> {
14 init(name: String, type: T.Type) {
19 protocol EntityProvider {
20 associatedtype ObjectType: NSManagedObject = Self
22 static var entityName: String { get }
23 static var entity: Entity<ObjectType> { get }
25 extension EntityProvider {
26 static var entity: Entity<ObjectType> {
27 return Entity(name: entityName, type: ObjectType.self)
31 // MARK: - Implementations
32 extension NSManagedObject {
33 class var entityName: String { return String(describing: self) }
37 extension AirBase: EntityProvider {}
38 extension AirBasePlaneInfo: EntityProvider {}
39 extension Basic: EntityProvider {}
40 extension Deck: EntityProvider {}
41 extension KenzoDock: EntityProvider {}
42 extension MasterFurniture: EntityProvider {}
43 extension MasterMapArea: EntityProvider {}
44 extension MasterMapInfo: EntityProvider {}
45 extension MasterMission: EntityProvider {}
46 extension MasterShip: EntityProvider {}
47 extension MasterSlotItem: EntityProvider {}
48 extension MasterSType: EntityProvider {}
49 extension MasterSlotItemEquipType: EntityProvider {}
50 extension MasterUseItem: EntityProvider {}
51 extension Material: EntityProvider {}
52 extension NyukyoDock: EntityProvider {}
53 extension Ship: EntityProvider {}
54 extension SlotItem: EntityProvider {}
55 extension Quest: EntityProvider {}
57 // MARK: - LocalData model
58 extension DropShipHistory: EntityProvider {}
59 extension HiddenDropShipHistory: EntityProvider {}
60 extension KaihatuHistory: EntityProvider {}
61 extension KenzoHistory: EntityProvider {}
62 extension KenzoMark: EntityProvider {}
64 // MARK: - Temporay model
65 extension Battle: EntityProvider {}
66 extension Damage: EntityProvider {}
67 extension GuardEscaped: EntityProvider {}
69 // MARK: - Bookmark model
70 extension Bookmark: EntityProvider {}
72 // MARK: - ResourceHistory model
73 extension Resource: EntityProvider {}