input_specs = self.getSpecValues( 'input' )
        for input_tvar_name in input_specs:
            input_tvar = self.complier.getTaskObject( 'tvar', input_tvar_name )
            self.inputs[input_tvar_name] = input_tvar 
            
    def execute(self):
        for input_object in self.inputs.values():
            input_object.execute()
        self.run_task()
        
    def run_task(self):
        pass 

    def __str__(self):
        return '\n'.join( [ TaskObject.__str__(self), "   -- grid: %s " % str( self.grid ), "   -- time_bounds: %s " % str( self.time_bounds ), "   -- inputs: %s " % str( self.inputs.items() ) ] )
        
TaskCompiler.registerObjectType( 'dataset', TaskObject )
TaskCompiler.registerObjectType( 'time_bounds', TaskObject )
TaskCompiler.registerObjectType( 'grid', TaskObject )
TaskCompiler.registerObjectType( 'tvar', TVarObject )
TaskCompiler.registerObjectType( 'output', TaskObject )

if __name__ == "__main__":
    
    configFilePath = "./config/ParallelCDMS.nasa-2.txt"
    cp = ConfigFileParser( configFilePath ) 
    cp.parse() 
        
    taskCompiler = TaskCompiler()
    taskCompiler.processTaskSpec( cp.data() )