def __init__(self, wfid, sub_wfid, expid, engine_id = None): 
        """
        @type wfid: C{string}
        @param wfid: workflow instance id, 
                     the identifier for the process instance

        @type sub_wfid: C{string}
        @param sub_wfid: the identifier for the 
                      sub process within the main instance

        @type expid: C{string} of form '^\d{0,2}%s\d{0,2}%s\d{0,2}$'
        @param expid: the expression id, where in the process tree

        @type engine_id: string
        @param engine_id:  only relevant in multi engine scenarii 
        """
        self._wfid = wfid
        self._sub_wfid = sub_wfid 
        self._expid = expression_id_factory(expid)  
        self._engine_id = engine_id
 def test_expression_id_factory(self):
     expid = expression_id_factory("1_2_3_4")
     self.assertEquals([1,2,3,4], list(expid))