public static RequestOptions getRequestOptions(final GremlinLang gremlinLang) {
        final Iterator<OptionsStrategy> itty = gremlinLang.getOptionsStrategies().iterator();
        final RequestOptions.Builder builder = RequestOptions.build();
        while (itty.hasNext()) {
            final OptionsStrategy optionsStrategy = itty.next();
            final Map<String, Object> options = optionsStrategy.getOptions();
            if (options.containsKey(ARGS_EVAL_TIMEOUT))
                builder.timeout(((Number) options.get(ARGS_EVAL_TIMEOUT)).longValue());
            if (options.containsKey(ARGS_BATCH_SIZE))
                builder.batchSize(((Number) options.get(ARGS_BATCH_SIZE)).intValue());
            if (options.containsKey(ARGS_MATERIALIZE_PROPERTIES))
                builder.materializeProperties((String) options.get(ARGS_MATERIALIZE_PROPERTIES));
            if (options.containsKey(ARGS_LANGUAGE))
                builder.language((String) options.get(ARGS_LANGUAGE));
            if (options.containsKey(BULK_RESULTS))
                builder.bulkResults((boolean) options.get(BULK_RESULTS));
        }
        // request the server to bulk results by default when using DRC through request options
        if (builder.bulkResults == null)
            builder.bulkResults(true);

        final Map<String, Object> parameters = gremlinLang.getParameters();
        if (parameters != null && !parameters.isEmpty()) {
            parameters.forEach(builder::addParameter);
        }
        return builder.create();
    }
Options that can be supplied on a per request basis.

@author Stephen Mallette (http://stephen.genoprime.com)
gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/RequestOptions.java