//
//  TimeValueTransformer.swift
//  MotusLabTool
//
//  Created by Pierre Couprie on 30/08/2019.
//  Copyright © 2019 Pierre Couprie. All rights reserved.
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <https://www.gnu.org/licenses/>.

import Foundation

/// Convert Float time value (eg 0) to String time value (eg "00:00.000")
@objc(TimeValueTransformer) class TimeValueTransformer: ValueTransformer {
    
    override class func transformedValueClass() -> AnyClass {
        return NSString.self
    }
    
    override class func allowsReverseTransformation() -> Bool {
        return true
    }
    
    override func transformedValue(_ value: Any?) -> Any? {
        if let time = value as? Float {
            return time.floatToTime()
        }
        
        return "00:00.000"
    }
    
    override func reverseTransformedValue(_ value: Any?) -> Any? {
        if let timeStr = value as? String {
            let timeFl = timeStr.stringToTime()
            return timeFl
        }
        return Float(0)
    }
    
}
