I think that the inheritance of Reachabilitysearch in Workflow is a bit unfortunate. It seems that the only methods really used from this inheritance is "getTrace" and "isDelayPossible", the rest are overwritten. Also, why is the pwList defined as a PWList instead of WorkflowPWList? And is there any reason for the new methods in PWList (they are all unused)?
I suggest to let Workflow inherit from Verification instead, define getTrace and isDelayPossible here, move pwList here also, but change the type to WorkflowPWList. This will allow you to remove the new methods from PWList and maintain a more concise inheritance model.
I think that the inheritance of Reachabilitysearch in Workflow is a bit unfortunate. It seems that the only methods really used from this inheritance is "getTrace" and "isDelayPossible", the rest are overwritten. Also, why is the pwList defined as a PWList instead of WorkflowPWList? And is there any reason for the new methods in PWList (they are all unused)?
I suggest to let Workflow inherit from Verification instead, define getTrace and isDelayPossible here, move pwList here also, but change the type to WorkflowPWList. This will allow you to remove the new methods from PWList and maintain a more concise inheritance model.