class ScriptExecutionAdderImpl implements ScriptExecutionAdder {

    @Override
    public ScriptExecutionAdder withArguments(final Argument... arguments) {
        if (arguments == null) {
            throw new IllegalArgumentException("Arguments cannot be null.");
        }

        if (arguments.length == 0) {
            throw new IllegalArgumentException("At least one argument must be supplied.");
        }

        // Verify that nothing is null
        for (final Argument argument : arguments) {
            if (argument == null) {
                throw new IllegalArgumentException("Null arguments are not allowed: " + Arrays.toString(arguments));
            }
        }

        this.arguments = Arrays.asList(arguments);
        return this;
    }

    public  ScriptExecutionAdderImpl(final String scriptName, final CommandQueue queue);

}