/** * 根据工作流的定义事物返回对应示例。 * * @param thing * @return */ public static List<Workflow> getWorkflowInstances(Thing thing) { List<Workflow> flows = new ArrayList<Workflow>(); for (String key : workflows.keySet()) { Workflow workflow = workflows.get(key); Thing fthing = workflow.getThing(); if (fthing == thing) { flows.add(workflow); } } return flows; }
/** * 返回当前所有工作流多定义的事物列表。 * * @return */ public static List<Thing> getWorkflowThings() { List<Thing> things = new ArrayList<Thing>(); Map<String, String> thingMap = new HashMap<String, String>(); for (String key : workflows.keySet()) { Workflow workflow = workflows.get(key); Thing thing = workflow.getThing(); String path = thing.getMetadata().getPath(); if (thingMap.get(path) == null) { things.add(thing); thingMap.put(path, path); } } return things; }
/** * 移除工作流。 * * @param workflow */ public static void removeWorkflow(Workflow workflow) { String id = workflow.getThing().getMetadata().getPath() + ":" + workflow.getWorkflowId(); workflows.remove(id); }
/** * 放入工作流,主要是放入决定是否放入到缓存中。 * * @param workflow */ public static void putWorkflow(Workflow workflow) { String id = workflow.getThing().getMetadata().getPath() + ":" + workflow.getWorkflowId(); workflows.put(id, workflow); }