github "SwiftyJSON/SwiftyJSON" "4.1.0"
-github "masakih/Doutaku" "0.6.0"
+github "masakih/Doutaku" "1.0"
final class AirBaseMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: AirBase.entity,
+ let configuration = MappingConfiguration(entity: AirBase.self,
dataKeys: ["api_data", "api_air_base"],
primaryKeys: ["area_id", "rid"],
editorStore: ServerDataStore.oneTimeEditor())
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: Basic.entity,
+ self.configuration = MappingConfiguration(entity: Basic.self,
dataKeys: BasicMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
func createBookmark() -> Bookmark? {
- return insertNewObject(for: Bookmark.entity)
+ return insertNewObject(for: Bookmark.self)
}
}
return
}
- guard let bookmark = store.object(of: Bookmark.entity, forURIRepresentation: uri) else {
+ guard let bookmark = store.object(of: Bookmark.self, forURIRepresentation: uri) else {
return
}
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: Deck.entity,
+ self.configuration = MappingConfiguration(entity: Deck.self,
dataKeys: DeckMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
import Doutaku
// MARK: - KCD model
-extension AirBase: EntityProvider {}
-extension AirBasePlaneInfo: EntityProvider {}
-extension Basic: EntityProvider {}
-extension Deck: EntityProvider {}
-extension KenzoDock: EntityProvider {}
-extension MasterFurniture: EntityProvider {}
-extension MasterMapArea: EntityProvider {}
-extension MasterMapInfo: EntityProvider {}
-extension MasterMission: EntityProvider {}
-extension MasterShip: EntityProvider {}
-extension MasterSlotItem: EntityProvider {}
-extension MasterSType: EntityProvider {}
-extension MasterSlotItemEquipType: EntityProvider {}
-extension MasterUseItem: EntityProvider {}
-extension Material: EntityProvider {}
-extension NyukyoDock: EntityProvider {}
-extension Ship: EntityProvider {}
-extension SlotItem: EntityProvider {}
-extension Quest: EntityProvider {}
+extension AirBase: Entity {}
+extension AirBasePlaneInfo: Entity {}
+extension Basic: Entity {}
+extension Deck: Entity {}
+extension KenzoDock: Entity {}
+extension MasterFurniture: Entity {}
+extension MasterMapArea: Entity {}
+extension MasterMapInfo: Entity {}
+extension MasterMission: Entity {}
+extension MasterShip: Entity {}
+extension MasterSlotItem: Entity {}
+extension MasterSType: Entity {}
+extension MasterSlotItemEquipType: Entity {}
+extension MasterUseItem: Entity {}
+extension Material: Entity {}
+extension NyukyoDock: Entity {}
+extension Ship: Entity {}
+extension SlotItem: Entity {}
+extension Quest: Entity {}
// MARK: - LocalData model
-extension DropShipHistory: EntityProvider {}
-extension HiddenDropShipHistory: EntityProvider {}
-extension KaihatuHistory: EntityProvider {}
-extension KenzoHistory: EntityProvider {}
-extension KenzoMark: EntityProvider {}
+extension DropShipHistory: Entity {}
+extension HiddenDropShipHistory: Entity {}
+extension KaihatuHistory: Entity {}
+extension KenzoHistory: Entity {}
+extension KenzoMark: Entity {}
// MARK: - Temporay model
-extension Battle: EntityProvider {}
-extension Damage: EntityProvider {}
-extension GuardEscaped: EntityProvider {}
+extension Battle: Entity {}
+extension Damage: Entity {}
+extension GuardEscaped: Entity {}
// MARK: - Bookmark model
-extension Bookmark: EntityProvider {}
+extension Bookmark: Entity {}
// MARK: - ResourceHistory model
-extension Resource: EntityProvider {}
+extension Resource: Entity {}
override var predicateFormat: String { return "name contains $value" }
override func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
- return try store.objects(of: KaihatuHistory.entity, predicate: predicate)
+ return try store.objects(of: KaihatuHistory.self, predicate: predicate)
}
}
override var predicateFormat: String { return "name contains $value" }
override func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
- return try store.objects(of: KenzoHistory.entity, predicate: predicate)
+ return try store.objects(of: KenzoHistory.self, predicate: predicate)
}
}
override var predicateFormat: String { return "shipName contains $value" }
override func objects(of predicate: Predicate?, in store: LocalDataStore) throws -> [NSManagedObject] {
- return try store.objects(of: DropShipHistory.entity, predicate: predicate)
+ return try store.objects(of: DropShipHistory.self, predicate: predicate)
}
}
import SwiftyJSON
import Doutaku
-struct MappingConfiguration<T: NSManagedObject> {
+struct MappingConfiguration<T: Entity> {
- let entity: Entity<T>
+ let entity: T.Type
let dataKeys: [String]
let primaryKeys: [String]
let editorStore: CoreDataAccessor
let ignoreKeys: [String]
- init(entity: Entity<T>,
+ init(entity: T.Type,
dataKeys: [String] = ["api_data"],
primaryKeys: [String] = ["id"],
editorStore: CoreDataAccessor,
protocol JSONMapper {
- associatedtype ObjectType: NSManagedObject
+ associatedtype ObjectType: Entity
init(_ apiResponse: APIResponse)
}
}
- private func sortedObjects<T>(_ entity: Entity<T>) -> [T] {
+ private func sortedObjects<ResultType: Entity>(_ entity: ResultType.Type) -> [ResultType] {
let store = configuration.editorStore
return []
}
- return (objects as NSArray).sortedArray(using: sortDescriptors) as? [T] ?? []
+ return (objects as NSArray).sortedArray(using: sortDescriptors) as? [ResultType] ?? []
}
private func commintInContext() {
import Foundation
import CoreData
+import Doutaku
enum KCManagedObjectError: Error {
return value(forKey: k)
}
- print("Entity \(type(of: self).entityName) dose not have key \(key)")
+ print("Entity \(String(describing: self)) dose not have key \(key)")
return nil
}
return
}
- print("Entity \(type(of: self).entityName) dose not have key \(key)")
+ print("Entity \(String(describing: self)) dose not have key \(key)")
}
}
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: KenzoDock.entity,
+ self.configuration = MappingConfiguration(entity: KenzoDock.self,
dataKeys: KenzoDockMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
)
.and(Predicate(\DropShipHistory.mapArea, in: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]))
- guard let dropHistories = try? objects(of: DropShipHistory.entity, predicate: predicate) else {
+ guard let dropHistories = try? objects(of: DropShipHistory.self, predicate: predicate) else {
return []
}
func createDropShipHistory(from: HiddenDropShipHistory) -> DropShipHistory? {
- guard let new = insertNewObject(for: DropShipHistory.entity) else {
+ guard let new = insertNewObject(for: DropShipHistory.self) else {
Logger.shared.log("Can not create DropShipHistory")
func kaihatuHistories() -> [KaihatuHistory] {
- guard let kaihatuHistories = try? objects(of: KaihatuHistory.entity) else {
+ guard let kaihatuHistories = try? objects(of: KaihatuHistory.self) else {
return []
}
.or(Predicate(isNil: \KaihatuHistory.mark))
)
- guard let kaihatuHistories = try? objects(of: KaihatuHistory.entity, predicate: predicate) else {
+ guard let kaihatuHistories = try? objects(of: KaihatuHistory.self, predicate: predicate) else {
return []
}
func createKaihatuHistory() -> KaihatuHistory? {
- return insertNewObject(for: KaihatuHistory.entity)
+ return insertNewObject(for: KaihatuHistory.self)
}
func kenzoMark(byDockId dockId: Int) -> KenzoMark? {
let predicate = Predicate(\KenzoMark.kDockId, equalTo: dockId)
- guard let kenzoMarks = try? objects(of: KenzoMark.entity, predicate: predicate) else {
+ guard let kenzoMarks = try? objects(of: KenzoMark.self, predicate: predicate) else {
return nil
}
.and(Predicate(\KenzoMark.kaihatusizai, equalTo: docInfo.kaihatusizai))
.and(Predicate(\KenzoMark.created_ship_id, equalTo: docInfo.shipId))
- guard let kenzoMarks = try? objects(of: KenzoMark.entity, predicate: predicate) else {
+ guard let kenzoMarks = try? objects(of: KenzoMark.self, predicate: predicate) else {
return nil
}
func createKenzoMark() -> KenzoMark? {
- return insertNewObject(for: KenzoMark.entity)
+ return insertNewObject(for: KenzoMark.self)
}
func unmarkedKenzoHistories(befor days: Int) -> [KenzoHistory] {
.or(Predicate(isNil: \KenzoHistory.mark))
)
- guard let kenzoHistories = try? objects(of: KenzoHistory.entity, predicate: predicate) else {
+ guard let kenzoHistories = try? objects(of: KenzoHistory.self, predicate: predicate) else {
return []
}
func createKenzoHistory() -> KenzoHistory? {
- return insertNewObject(for: KenzoHistory.entity)
+ return insertNewObject(for: KenzoHistory.self)
}
func hiddenDropShipHistories() -> [HiddenDropShipHistory] {
- guard let dropShipHistories = try? objects(of: HiddenDropShipHistory.entity) else {
+ guard let dropShipHistories = try? objects(of: HiddenDropShipHistory.self) else {
return []
}
func createHiddenDropShipHistory() -> HiddenDropShipHistory? {
- return insertNewObject(for: HiddenDropShipHistory.entity)
+ return insertNewObject(for: HiddenDropShipHistory.self)
}
}
final class MasterFurnitureMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterFurniture.entity,
+ let configuration = MappingConfiguration(entity: MasterFurniture.self,
dataKeys: ["api_data", "api_mst_furniture"],
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ["api_season"])
final class MasterMapAreaMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterMapArea.entity,
+ let configuration = MappingConfiguration(entity: MasterMapArea.self,
dataKeys: ["api_data", "api_mst_maparea"],
editorStore: ServerDataStore.oneTimeEditor())
final class MasterMapInfoMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterMapInfo.entity,
+ let configuration = MappingConfiguration(entity: MasterMapInfo.self,
dataKeys: ["api_data", "api_mst_mapinfo"],
editorStore: ServerDataStore.oneTimeEditor())
final class MasterMissionMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterMission.entity,
+ let configuration = MappingConfiguration(entity: MasterMission.self,
dataKeys: ["api_data", "api_mst_mission"],
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ["api_deck_num", "api_disp_no"])
final class MasterSTypeMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterSType.entity,
+ let configuration = MappingConfiguration(entity: MasterSType.self,
dataKeys: ["api_data", "api_mst_stype"],
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ["api_equip_type"])
final class MasterShipMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterShip.entity,
+ let configuration = MappingConfiguration(entity: MasterShip.self,
dataKeys: ["api_data", "api_mst_ship"],
editorStore: ServerDataStore.oneTimeEditor())
final class MasterSlotItemEquipTypeMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterSlotItemEquipType.entity,
+ let configuration = MappingConfiguration(entity: MasterSlotItemEquipType.self,
dataKeys: ["api_data", "api_mst_slotitem_equiptype"],
editorStore: ServerDataStore.oneTimeEditor())
final class MasterSlotItemMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterSlotItem.entity,
+ let configuration = MappingConfiguration(entity: MasterSlotItem.self,
dataKeys: ["api_data", "api_mst_slotitem"],
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ["api_version"])
final class MasterUseItemMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entity: MasterUseItem.entity,
+ let configuration = MappingConfiguration(entity: MasterUseItem.self,
dataKeys: ["api_data", "api_mst_useitem"],
editorStore: ServerDataStore.oneTimeEditor())
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: Material.entity,
+ self.configuration = MappingConfiguration(entity: Material.self,
dataKeys: MaterialMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: NyukyoDock.entity,
+ self.configuration = MappingConfiguration(entity: NyukyoDock.self,
dataKeys: NyukyoDockMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
let predicate = Predicate(\Resource.minute, in: minites)
.and(Predicate(\Resource.date, lessThan: older))
- guard let resources = try? objects(of: Resource.entity, predicate: predicate) else {
+ guard let resources = try? objects(of: Resource.self, predicate: predicate) else {
return []
}
func createResource() -> Resource? {
- return insertNewObject(for: Resource.entity)
+ return insertNewObject(for: Resource.self)
}
}
func airBases() -> [AirBase] {
- guard let airbase = try? objects(of: AirBase.entity) else {
+ guard let airbase = try? objects(of: AirBase.self) else {
return []
}
let predicate = Predicate(\AirBase.area_id, equalTo: area)
.and(Predicate(\AirBase.rid, equalTo: base))
- guard let airBases = try? objects(of: AirBase.entity, predicate: predicate) else {
+ guard let airBases = try? objects(of: AirBase.self, predicate: predicate) else {
return nil
}
func createAirBasePlaneInfo() -> AirBasePlaneInfo? {
- return insertNewObject(for: AirBasePlaneInfo.entity)
+ return insertNewObject(for: AirBasePlaneInfo.self)
}
func basic() -> Basic? {
- guard let basics = try? objects(of: Basic.entity) else {
+ guard let basics = try? objects(of: Basic.self) else {
return nil
}
func createBasic() -> Basic? {
- return insertNewObject(for: Basic.entity)
+ return insertNewObject(for: Basic.self)
}
func decksSortedById() -> [Deck] {
let sortDecs = SortDescriptors(keyPath: \Deck.id, ascending: true)
- guard let decks = try? objects(of: Deck.entity, sortDescriptors: sortDecs) else {
+ guard let decks = try? objects(of: Deck.self, sortDescriptors: sortDecs) else {
return []
}
let predicate = Predicate(\Deck.id, equalTo: id)
- guard let decks = try? objects(of: Deck.entity, predicate: predicate) else {
+ guard let decks = try? objects(of: Deck.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\KenzoDock.id, equalTo: dockId)
- guard let kenzoDocks = try? objects(of: KenzoDock.entity, predicate: predicate) else {
+ guard let kenzoDocks = try? objects(of: KenzoDock.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\MasterMapArea.id, equalTo: id)
- guard let mapAreas = try? objects(of: MasterMapArea.entity, predicate: predicate) else {
+ guard let mapAreas = try? objects(of: MasterMapArea.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\MasterMapInfo.maparea_id, equalTo: area)
.and(Predicate(\MasterMapInfo.no, equalTo: no))
- guard let mapInfos = try? objects(of: MasterMapInfo.entity, predicate: predicate) else {
+ guard let mapInfos = try? objects(of: MasterMapInfo.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\MasterMission.id, equalTo: id)
- guard let missions = try? objects(of: MasterMission.entity, predicate: predicate) else {
+ guard let missions = try? objects(of: MasterMission.self, predicate: predicate) else {
return nil
}
func masterShips() -> [MasterShip] {
- guard let ships = try? objects(of: MasterShip.entity) else {
+ guard let ships = try? objects(of: MasterShip.self) else {
return []
}
let sortDescs = SortDescriptors(keyPath: \MasterShip.id, ascending: true)
- guard let ships = try? objects(of: MasterShip.entity, sortDescriptors: sortDescs) else {
+ guard let ships = try? objects(of: MasterShip.self, sortDescriptors: sortDescs) else {
return []
}
let predicate = Predicate(\MasterShip.id, equalTo: id)
- guard let ships = try? objects(of: MasterShip.entity, predicate: predicate) else {
+ guard let ships = try? objects(of: MasterShip.self, predicate: predicate) else {
return nil
}
let sortDescs = SortDescriptors(keyPath: \MasterSlotItem.id, ascending: true)
- guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, sortDescriptors: sortDescs) else {
+ guard let masterSlotItems = try? objects(of: MasterSlotItem.self, sortDescriptors: sortDescs) else {
return []
}
func masterSlotItems() -> [MasterSlotItem] {
- guard let masterSlotItems = try? objects(of: MasterSlotItem.entity) else {
+ guard let masterSlotItems = try? objects(of: MasterSlotItem.self) else {
return []
}
let predicate = Predicate(\MasterSlotItem.id, equalTo: id)
- guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, predicate: predicate) else {
+ guard let masterSlotItems = try? objects(of: MasterSlotItem.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\MasterSlotItemEquipType.id, equalTo: id)
- guard let types = try? objects(of: MasterSlotItemEquipType.entity, predicate: predicate) else {
+ guard let types = try? objects(of: MasterSlotItemEquipType.self, predicate: predicate) else {
return nil
}
func masterSTypes() -> [MasterSType] {
- guard let masterSTypes = try? objects(of: MasterSType.entity) else {
+ guard let masterSTypes = try? objects(of: MasterSType.self) else {
return []
}
let sortDescs = SortDescriptors(keyPath: \MasterSType.id, ascending: true)
- guard let masterSTypes = try? objects(of: MasterSType.entity, sortDescriptors: sortDescs) else {
+ guard let masterSTypes = try? objects(of: MasterSType.self, sortDescriptors: sortDescs) else {
return []
}
func material() -> Material? {
- guard let materials = try? objects(of: Material.entity) else {
+ guard let materials = try? objects(of: Material.self) else {
return nil
}
func createMaterial() -> Material? {
- return insertNewObject(for: Material.entity)
+ return insertNewObject(for: Material.self)
}
func nyukyoDock(by id: Int) -> NyukyoDock? {
let predicate = Predicate(\NyukyoDock.id, equalTo: id)
- guard let ndocks = try? objects(of: NyukyoDock.entity, predicate: predicate) else {
+ guard let ndocks = try? objects(of: NyukyoDock.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\Deck.id, equalTo: deckId)
- guard let decks = try? objects(of: Deck.entity, predicate: predicate) else {
+ guard let decks = try? objects(of: Deck.self, predicate: predicate) else {
return []
}
let predicate = Predicate(\Ship.id, equalTo: shipId)
- guard let ships = try? objects(of: Ship.entity, predicate: predicate) else {
+ guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\Ship.id, equalTo: shipId)
- guard let ships = try? objects(of: Ship.entity, predicate: predicate) else {
+ guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
return []
}
let predicate = Predicate(\Ship.id, in: shipIds).negate()
- guard let ships = try? objects(of: Ship.entity, predicate: predicate) else {
+ guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
return []
}
let predicate = Predicate(\Ship.fleet, notEqualTo: 0)
- guard let ships = try? objects(of: Ship.entity, predicate: predicate) else {
+ guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
return []
}
func createShip() -> Ship? {
- return insertNewObject(for: Ship.entity)
+ return insertNewObject(for: Ship.self)
}
func masterSlotItemID(by slotItemId: Int) -> Int {
let predicate = Predicate(\SlotItem.id, equalTo: slotItemId)
- guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else {
+ guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
return 0
}
let predicate = Predicate(\SlotItem.id, equalTo: itemId)
- guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else {
+ guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
return nil
}
let sortDescs = SortDescriptors(keyPath: \SlotItem.id, ascending: true)
- guard let slotItems = try? objects(of: SlotItem.entity, sortDescriptors: sortDescs) else {
+ guard let slotItems = try? objects(of: SlotItem.self, sortDescriptors: sortDescs) else {
return []
}
func slotItems() -> [SlotItem] {
- guard let slotItems = try? objects(of: SlotItem.entity) else {
+ guard let slotItems = try? objects(of: SlotItem.self) else {
return []
}
let predicate = Predicate(\SlotItem.id, in: itemIds)
- guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else {
+ guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
return []
}
let predicate = Predicate(\SlotItem.id, in: itemIds).negate()
- guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else {
+ guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
return []
}
func createSlotItem() -> SlotItem? {
- return insertNewObject(for: SlotItem.entity)
+ return insertNewObject(for: SlotItem.self)
}
func quests() -> [Quest] {
- guard let quests = try? objects(of: Quest.entity) else {
+ guard let quests = try? objects(of: Quest.self) else {
return []
}
let predicate = Predicate(\Quest.no, equalTo: no)
- guard let quests = try? objects(of: Quest.entity, predicate: predicate) else {
+ guard let quests = try? objects(of: Quest.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(\Quest.no, in: range.map { $0 })
- guard let quests = try? objects(of: Quest.entity, predicate: predicate) else {
+ guard let quests = try? objects(of: Quest.self, predicate: predicate) else {
return []
}
let sortDescs = SortDescriptors(keyPath: \Quest.no, ascending: true)
- guard let quests = try? objects(of: Quest.entity, sortDescriptors: sortDescs) else {
+ guard let quests = try? objects(of: Quest.self, sortDescriptors: sortDescs) else {
return []
}
func createQuest() -> Quest? {
- return insertNewObject(for: Quest.entity)
+ return insertNewObject(for: Quest.self)
}
}
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: Ship.entity,
+ self.configuration = MappingConfiguration(entity: Ship.self,
dataKeys: ShipMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ShipMapper.ignoreKeys)
init(forSlotDepriveUnset apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: Ship.entity,
+ self.configuration = MappingConfiguration(entity: Ship.self,
dataKeys: ["api_data", "api_ship_data", "api_unset_ship"],
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ShipMapper.ignoreKeys)
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entity: SlotItem.entity,
+ self.configuration = MappingConfiguration(entity: SlotItem.self,
dataKeys: SlotItemMapper.dataKeys(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
}
}
- private func localData<T, Value>(_ entity: Entity<T>, sortBy: KeyPath<T, Value>) -> [T] {
+ private func localData<ResultType: Entity, Value>(_ type: ResultType.Type, sortBy: KeyPath<ResultType, Value>) -> [ResultType] {
let sortDesc = SortDescriptors(keyPath: sortBy, ascending: true)
- guard let array = try? store.objects(of: entity, sortDescriptors: sortDesc) else {
+ guard let array = try? store.objects(of: type, sortDescriptors: sortDesc) else {
- print("Can not get \(entity)")
+ print("Can not get \(type)")
return []
}
private func dataOfKaihatuHistory() -> Data? {
- return localData(KaihatuHistory.entity, sortBy: \KaihatuHistory.date)
+ return localData(KaihatuHistory.self, sortBy: \KaihatuHistory.date)
.map {
LFSeparateLine.empty
.append($0.date)
private func dataOfKenzoHistory() -> Data? {
- return localData(KenzoHistory.entity, sortBy: \KenzoHistory.date)
+ return localData(KenzoHistory.self, sortBy: \KenzoHistory.date)
.map {
LFSeparateLine.empty
.append($0.date)
private func dataOfKenzoMark() -> Data? {
- return localData(KenzoMark.entity, sortBy: \KenzoMark.kDockId)
+ return localData(KenzoMark.self, sortBy: \KenzoMark.kDockId)
.map {
LFSeparateLine.empty
.append($0.date)
private func dataOfDropShipHistory() -> Data? {
- return localData(DropShipHistory.entity, sortBy: \DropShipHistory.date)
+ return localData(DropShipHistory.self, sortBy: \DropShipHistory.date)
.map {
LFSeparateLine.empty
.append($0.date)
let predicate = Predicate(\KaihatuHistory.date, equalTo: date)
- guard let oo = try? store.objects(of: KaihatuHistory.entity, predicate: predicate) else {
+ guard let oo = try? store.objects(of: KaihatuHistory.self, predicate: predicate) else {
return
}
return
}
- guard let obj = store.insertNewObject(for: KaihatuHistory.entity) else {
+ guard let obj = store.insertNewObject(for: KaihatuHistory.self) else {
return
}
let predicate = Predicate(\KenzoHistory.date, equalTo: date)
- guard let oo = try? store.objects(of: KenzoHistory.entity, predicate: predicate) else {
+ guard let oo = try? store.objects(of: KenzoHistory.self, predicate: predicate) else {
return
}
return
}
- guard let obj = store.insertNewObject(for: KenzoHistory.entity) else {
+ guard let obj = store.insertNewObject(for: KenzoHistory.self) else {
return
}
let predicate = Predicate(\KenzoMark.date, equalTo: date)
- guard let oo = try? store.objects(of: KenzoMark.entity, predicate: predicate) else {
+ guard let oo = try? store.objects(of: KenzoMark.self, predicate: predicate) else {
return
}
return
}
- guard let obj = store.insertNewObject(for: KenzoMark.entity) else {
+ guard let obj = store.insertNewObject(for: KenzoMark.self) else {
return
}
let predicate = Predicate(\DropShipHistory.date, equalTo: date)
- guard let oo = try? store.objects(of: DropShipHistory.entity, predicate: predicate) else {
+ guard let oo = try? store.objects(of: DropShipHistory.self, predicate: predicate) else {
return
}
return
}
- guard let obj = store.insertNewObject(for: DropShipHistory.entity) else {
+ guard let obj = store.insertNewObject(for: DropShipHistory.self) else {
return
}
func battles() -> [Battle] {
- guard let battles = try? self.objects(of: Battle.entity) else {
+ guard let battles = try? self.objects(of: Battle.self) else {
return []
}
func createBattle() -> Battle? {
- return insertNewObject(for: Battle.entity)
+ return insertNewObject(for: Battle.self)
}
func sortedDamagesById() -> [Damage] {
let sortDescriptors = SortDescriptors(keyPath: \Damage.id, ascending: true)
- guard let damages = try? objects(of: Damage.entity, sortDescriptors: sortDescriptors) else {
+ guard let damages = try? objects(of: Damage.self, sortDescriptors: sortDescriptors) else {
return []
}
func damages() -> [Damage] {
- guard let damages = try? objects(of: Damage.entity) else {
+ guard let damages = try? objects(of: Damage.self) else {
return []
}
func createDamage() -> Damage? {
- return insertNewObject(for: Damage.entity)
+ return insertNewObject(for: Damage.self)
}
func guardEscaped() -> [GuardEscaped] {
- guard let escapeds = try? objects(of: GuardEscaped.entity) else {
+ guard let escapeds = try? objects(of: GuardEscaped.self) else {
return []
}
let predicate = Predicate(\GuardEscaped.shipID, equalTo: shipId)
.and(Predicate(true: \GuardEscaped.ensured))
- guard let escapes = try? objects(of: GuardEscaped.entity, predicate: predicate) else {
+ guard let escapes = try? objects(of: GuardEscaped.self, predicate: predicate) else {
return nil
}
let predicate = Predicate(false: \GuardEscaped.ensured)
- guard let escapeds = try? objects(of: GuardEscaped.entity, predicate: predicate) else {
+ guard let escapeds = try? objects(of: GuardEscaped.self, predicate: predicate) else {
return []
}
func createGuardEscaped() -> GuardEscaped? {
- return insertNewObject(for: GuardEscaped.entity)
+ return insertNewObject(for: GuardEscaped.self)
}
}