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