code: @Override
  	public boolean preVisit(Operator<?> node) {
  		// check if node was already visited
  		if (!this.visitedNodes.add(node)) {
  			return false;
  		}
  
  		// apply the appropriate check method
  		if (node instanceof FileDataSinkBase) {
  			checkFileDataSink((FileDataSinkBase<?>) node);
  		} else if (node instanceof FileDataSourceBase) {
  			checkFileDataSource((FileDataSourceBase<?>) node);
  		} else if (node instanceof GenericDataSinkBase) {
  			checkDataSink((GenericDataSinkBase<?>) node);
  		} else if (node instanceof BulkIterationBase) {
  			checkBulkIteration((BulkIterationBase<?>) node);
  		} else if (node instanceof SingleInputOperator) {
  			checkSingleInputContract((SingleInputOperator<?, ?, ?>) node);
  		} else if (node instanceof DualInputOperator<?, ?, ?, ?>) {
  			checkDualInputContract((DualInputOperator<?, ?, ?, ?>) node);
  		}
  		if(node instanceof Validatable) {
  			((Validatable) node).check();
  		}
  		return true;
  	}
docs: Checks whether the node is correctly connected to its input.