<activity xmlns="http://taverna.sf.net/2008/xml/t2flow"><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
  <script>List difference = new ArrayList();
for (Iterator i = list1.iterator(); i.hasNext();) {
	Object o = i.next();
	if (!list2.contains(o)) {
		difference.add(o);
	}
}
for (Iterator i = list2.iterator(); i.hasNext();) {
	Object o = i.next();
	if (!list1.contains(o)) {
		difference.add(o);
	}
}
</script>
  <dependencies />
  <inputs>
    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
      <handledReferenceSchemes />
      <translatedElementType>java.lang.String</translatedElementType>
      <allowsLiteralValues>true</allowsLiteralValues>
      <name>list1</name>
      <depth>1</depth>
      <mimeTypes>
        <string>l('text/plain')</string>
      </mimeTypes>
    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
      <handledReferenceSchemes />
      <translatedElementType>java.lang.String</translatedElementType>
      <allowsLiteralValues>true</allowsLiteralValues>
      <name>list2</name>
      <depth>1</depth>
      <mimeTypes>
        <string>l('text/plain')</string>
      </mimeTypes>
    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
  </inputs>
  <outputs>
    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>1</granularDepth>
      <name>difference</name>
      <depth>1</depth>
      <mimeTypes>
        <string>l('text/plain')</string>
      </mimeTypes>
    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean></activity>