#!/usr/bin/env python

import time
import os
from dmObject import DmObject
import urlparse

class ObservedFile(DmObject):

    DEFAULT_KEY_LIST = [ 'filePath', 'lastUpdateTime' ]

    def __init__(self, dict={}, filePath=None, dataDirectory=None, experiment=None, destDirectory=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 destDirectory:
                    self['destDirectory'] = destDirectory
                    self['experimentFilePath'] = '%s/%s' % (destDirectory, self['experimentFilePath'])
  
        if experiment:
            self['experimentName'] = experiment.get('name')
            self['storageHost'] = experiment.get('storageHost')
            self['storageDirectory'] = experiment.get('storageDirectory')
    def setLastUpdateTimeToNow(self):
        self['lastUpdateTime'] = time.time()

    def getLastUpdateTime(self):
        self.get('lastUpdateTime')

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

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

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