private void remove(Object object) { Class clazz = object.getClass(); if (clazz.isArray()) { Object[] array = (Object[]) object; for (int index = 0; index < array.length; index++) { remove(array[index]); } } else { if (object instanceof Collection) { Iterator iterator = ((Collection) object).iterator(); while (iterator.hasNext()) { remove(iterator.next()); } } else if (object instanceof Processor) { model.destroyProcessor((Processor) object); } else if (object instanceof Port) { Port port = (Port) object; port.getProcessor().removePort(port); } else if (object instanceof DataConstraint) { model.destroyDataConstraint((DataConstraint) object); } else if (object instanceof ConcurrencyConstraint) { model .destroyConcurrencyConstraint((ConcurrencyConstraint) object); } } } }
public void remove(Object[] cells) { for (int index = 0; index < cells.length; index++) { if (cells[index] instanceof Processor) { if (cells[index] != model.getWorkflowSinkProcessor() && cells[index] != model.getWorkflowSourceProcessor()) { model.destroyProcessor((Processor) cells[index]); } } else if (cells[index] instanceof DataConstraint) { model.destroyDataConstraint((DataConstraint) cells[index]); } else if (cells[index] instanceof ConcurrencyConstraint) { model.destroyConcurrencyConstraint((ConcurrencyConstraint) cells[index]); } else if (cells[index] instanceof Port) { // TODO Check port is actually on the workflow edge? Port port = (Port) cells[index]; port.getProcessor().removePort(port); } } }