#!/usr/bin/env python

import time
import os
from dmObject import DmObject
import urlparse

class ObservedFile(DmObject):

    DEFAULT_KEY_LIST = [ 'filePath', 'lastUpdatedTimestamp' ]

    def __init__(self, dict={}, filePath=None, dataDirectory=None, experiment=None):
        DmObject.__init__(self, dict)
        if filePath:
            self['filePath'] = filePath
        if dataDirectory:
            self['dataDirectory'] = dataDirectory
            if filePath:
                parseResult = urlparse.urlparse(dataDirectory)
                self['experimentFilePath'] = os.path.relpath(filePath, parseResult.path)
        if experiment:
            self['experiment'] = experiment

    def setLastUpdatedTimestampToNow(self):
        self['lastUpdateTimestamp'] = time.time()

    def getLastUpdatedTimestamp(self):
        self.get('lastUpdateTimestamp')

    def getFilePath(self):
        return self.get('filePath')

    def getDataDirectory(self):
        return self.get('dataDirectory')

    def getExperiment(self):
        return self.get('experiment')

####################################################################
# Testing
if __name__ == '__main__':
    of = ObservedFile(filePath='tmp/xyz')
    print of
    of.setLastUpdatedTimestampToNow()
    print of