package ever.simpleCooking; import java.util.HashMap; import java.util.HashSet; import ever.pipeline.AbstractLocalInputAnalyzer; import ever.pipeline.Case; import ever.pipeline.XmlHandler; import ever.workflowRepresentation.EmptyProductException; import ever.workflowRepresentation.NotAProductException; import ever.workflowRepresentation.Product; import ever.workflowRepresentation.SimpleFacet; import ever.workflowRepresentation.SimpleProduct; import ever.workflowRepresentation.Workflow; /** * This analyzer extract the product/ingredient list from a textual process description * @author Pol Schumacher, Wirtschaftsinformatik, Institut fuer Informatik, Goethe Universitaet Frankfurt * */ public class ProductListExtractor extends AbstractLocalInputAnalyzer { public ProductListExtractor() { // TODO Auto-generated constructor stub } @Override public Case analyze(Case c) { Workflow wf = c.getWf(); HashSet pl = null; try { pl = XmlHandler.getProductList(c.getXmlString().replaceAll(" & ", " and ")); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } for(String s : pl) { s=s.trim(); if(s.isEmpty()) continue; Product pro=null; try { pro = new SimpleProduct(s, 0); } catch (EmptyProductException | NotAProductException e) { // TODO Auto-generated catch block e.printStackTrace(); } pro.addFacet(new SimpleFacet("Linked","ProductList")); wf.addProduct(pro); } c.setWf(wf); return c; } @Override public HashMap analyze(HashMap c) { // TODO Auto-generated method stub return null; } @Override public void analyze() { // TODO Auto-generated method stub } }