class DynamicCompilerAdderImpl extends AbstractCompilerAdder implements DynamicCompilerAdder<DynamicCompilerAdderImpl> {

    @Override
    public DynamicCompilerAdderImpl withScriptName(final String scriptName) {
        if (scriptName == null) {
            throw new NullPointerException("Script name cannot be null.");
        }

        if (scriptName.trim().length() == 0) {
            throw new IllegalArgumentException("Script name cannot be blank.");
        }

        if (scriptName.length() > MAX_SCRIPT_NAME_LENGTH) {
            throw new IllegalArgumentException(String.format("Script name exceeds max length: %d > %d",
                    scriptName.length(), MAX_SCRIPT_NAME_LENGTH));
        }

        this.scriptName = scriptName;
        return this;
    }

    public  DynamicCompilerAdderImpl(final File sourceFile, final CommandQueue queue);

}