2010-06-15 12:43:46 +08:00
|
|
|
package org.broadinstitute.sting.queue.function
|
|
|
|
|
|
|
|
|
|
import scala.collection.immutable.ListMap
|
|
|
|
|
|
2010-06-23 02:39:20 +08:00
|
|
|
/**
|
|
|
|
|
* The base interface for all functions in Queue.
|
|
|
|
|
* Inputs and outputs are specified as ListMaps of name -> value.
|
|
|
|
|
* The names are used for debugging.
|
|
|
|
|
* Inputs are matched to other outputs by using .equals()
|
|
|
|
|
*/
|
2010-06-15 12:43:46 +08:00
|
|
|
trait QFunction {
|
2010-06-23 02:39:20 +08:00
|
|
|
/**
|
|
|
|
|
* After a function is frozen no more updates are allowed by the user.
|
|
|
|
|
* The function is allow to make necessary updates internally to make sure
|
|
|
|
|
* the inputs and outputs will be equal to other inputs and outputs.
|
|
|
|
|
*/
|
|
|
|
|
def freeze = {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ListMap of name -> value inputs for this function.
|
|
|
|
|
*/
|
2010-06-15 12:43:46 +08:00
|
|
|
def inputs: ListMap[String, Any]
|
2010-06-23 02:39:20 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ListMap of name -> value outputs for this function.
|
|
|
|
|
*/
|
2010-06-15 12:43:46 +08:00
|
|
|
def outputs: ListMap[String, Any]
|
|
|
|
|
}
|