class ScriptExecutionBuilder {

    public ScriptExecutionBuilder withArguments(final List<Argument> arguments) {
        if (arguments == null)
            throw new NullPointerException("Arguments cannot be null.");

        this.arguments = arguments.isEmpty() ? Collections.<Argument> emptyList()
                : Collections.unmodifiableList(arguments);
        return this;
    }

    private  ScriptExecutionBuilder(final String scriptName);

}