class PrintVertex extends VertexImpl<T, GenericVertex<T>> implements GenericVertex<T>, NonProbabilistic<T> {

    public static <T> T print(T parentValue, String message, boolean printData) {
        final String dataOutput = printData ? parentValue.toString() + "\n" : "";
        printStream.print(message + dataOutput);
        return parentValue;
    }

    @ExportVertexToPythonBindings public  PrintVertex(@LoadVertexParam(PARENT) Vertex<T, ?> parent,
                       @LoadVertexParam(MESSAGE) final String message,
                       @LoadVertexParam(PRINT_DATA) boolean printData);
    public  PrintVertex(Vertex<T, ?> parent);

}