private void configureForWrite(final Graph graph) {
        final String outputFormatClassNameOrKeyword = parameters.get(IO.writer, this::detectWriter).get(0);
        String outputFormatClassName;
        if (outputFormatClassNameOrKeyword.equals(IO.graphson))
            outputFormatClassName = GraphSONOutputFormat.class.getName();
        else if (outputFormatClassNameOrKeyword.equals(IO.gryo))
            outputFormatClassName = GryoOutputFormat.class.getName();
        else if (outputFormatClassNameOrKeyword.equals(IO.graphml))
            throw new IllegalStateException("GraphML is not a supported file format for OLAP");
        else
            outputFormatClassName = outputFormatClassNameOrKeyword;
        
        graph.configuration().setProperty(Constants.GREMLIN_HADOOP_GRAPH_WRITER, outputFormatClassName);
        graph.configuration().setProperty(Constants.GREMLIN_HADOOP_OUTPUT_LOCATION, file);

        addParametersToConfiguration(graph);
    }
An OLAP oriented step for doing IO operations with {@link GraphTraversalSource#io(String)} which uses the
{@link CloneVertexProgram} for its implementation. Standard Hadoop OLAP configurations can be passed using the
{@link GraphTraversal#with(String, Object)} step modulator as all options aside from those in {@link IO} will be
transferred.

@author Stephen Mallette (http://stephen.genoprime.com)
hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/traversal/step/sideEffect/HadoopIoStep.java