NetNewsWire/Frameworks/Database/AttachmentsTable.swift
2017-08-20 17:46:15 -07:00

44 lines
867 B
Swift

//
// AttachmentsTable.swift
// Database
//
// Created by Brent Simmons on 7/15/17.
// Copyright © 2017 Ranchero Software. All rights reserved.
//
import Foundation
import RSDatabase
import Data
struct AttachmentsTable: DatabaseTable {
let name: String
let databaseIDKey = DatabaseKey.attachmentID
private let cache = DatabaseObjectCache()
init(name: String) {
self.name = name
}
// MARK: DatabaseTable Methods
func objectWithRow(_ row: FMResultSet) -> DatabaseObject? {
return attachmentWithRow(row) as DatabaseObject
}
}
private extension AttachmentsTable {
func attachmentWithRow(_ row: FMResultSet) -> Attachment? {
let attachmentID = row.string(forColumn: DatabaseKey.attachmentID)
if let cachedAttachment = cache(attachmentID) {
return cachedAttachment
}
return Attachment(attachmentID: attachmentID, row: row)
}
}