2010-06-15 12:43:46 +08:00
|
|
|
package org.broadinstitute.sting.queue.function
|
|
|
|
|
|
2010-06-23 02:39:20 +08:00
|
|
|
/**
|
|
|
|
|
* The base interface for all functions in Queue.
|
2010-06-26 04:51:13 +08:00
|
|
|
* Inputs and outputs are specified as Sets of values.
|
2010-06-23 02:39:20 +08:00
|
|
|
* 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 = {}
|
|
|
|
|
|
|
|
|
|
/**
|
2010-06-26 04:51:13 +08:00
|
|
|
* Set of inputs for this function.
|
2010-06-23 02:39:20 +08:00
|
|
|
*/
|
2010-06-26 04:51:13 +08:00
|
|
|
def inputs: Set[Any]
|
2010-06-23 02:39:20 +08:00
|
|
|
|
|
|
|
|
/**
|
2010-06-26 04:51:13 +08:00
|
|
|
* Set of outputs for this function.
|
2010-06-23 02:39:20 +08:00
|
|
|
*/
|
2010-06-26 04:51:13 +08:00
|
|
|
def outputs: Set[Any]
|
2010-06-15 12:43:46 +08:00
|
|
|
}
|