/** * Remove the supplied Step from this flow * * @param manager the StepManager of the Step to remove * @throws WekaException if the step is not part of this flow */ public synchronized void removeStep(StepManagerImpl manager) throws WekaException { // int ID = manager.getManagedStep().hashCode(); if (!m_flowSteps.containsKey(manager.getManagedStep().getName())) { throw new WekaException( "Step " + manager.getManagedStep().getName() + " does not seem to be part of the flow!"); } m_flowSteps.remove(manager.getManagedStep().getName()); manager.clearAllConnections(); // remove from the map & disconnect from other steps! for (Map.Entry<String, StepManagerImpl> e : m_flowSteps.entrySet()) { e.getValue().disconnectStep(manager.getManagedStep()); } }