/** * Checks for all registered job vertices if their in-/out-degree is correct. * * @return <code>null</code> if the in-/out-degree of all vertices is correct or the first job * vertex whose in-/out-degree is incorrect. */ public AbstractJobVertex areVertexDegreesCorrect() { // Check input vertices final Iterator<AbstractJobInputVertex> iter = getInputVertices(); while (iter.hasNext()) { final AbstractJobVertex jv = iter.next(); if (jv.getNumberOfForwardConnections() < 1 || jv.getNumberOfBackwardConnections() > 0) { return jv; } } // Check task vertices final Iterator<JobTaskVertex> iter2 = getTaskVertices(); while (iter2.hasNext()) { final AbstractJobVertex jv = iter2.next(); if (jv.getNumberOfForwardConnections() < 1 || jv.getNumberOfBackwardConnections() < 1) { return jv; } } // Check output vertices final Iterator<AbstractJobOutputVertex> iter3 = getOutputVertices(); while (iter3.hasNext()) { final AbstractJobVertex jv = iter3.next(); if (jv.getNumberOfForwardConnections() > 0 || jv.getNumberOfBackwardConnections() < 1) { return jv; } } return null; }