code: private void collectStartVertices(final ManagementStage stage) {
  
  		for (int i = 0; i < stage.getNumberOfGroupVertices(); i++) {
  
  			final ManagementGroupVertex groupVertex = stage.getGroupVertex(i);
  
  			if (this.forward) {
  				if ((groupVertex.getNumberOfBackwardEdges() == 0)
  					|| ((this.stage >= 0) && allConnectionsFromOtherStage(groupVertex, true))) {
  					this.entryVertices.add(groupVertex);
  				}
  			} else {
  				if ((groupVertex.getNumberOfForwardEdges() == 0)
  					|| ((this.stage >= 0) && allConnectionsFromOtherStage(groupVertex, false))) {
  					this.entryVertices.add(groupVertex);
  				}
  			}
  		}
  	}
docs: Collects all input group vertices (i.e. vertices with no incoming edge or incoming edges from other stages) in
  the given stage and adds them to an internal list.
  
  @param stage
  the number of the stage whose input vertices should be collected