protected override CompileResult CompileCode(string sourceCode)
        {
            // First delete old working directory
            DirectoryHelpers.SafeDeleteDirectory(this.workingDirectory, true);

            this.workingDirectory = DirectoryHelpers.CreateTempDirectory();

            var sourceFilePath = JavaCodePreprocessorHelper.CreateSubmissionFile(sourceCode, this.workingDirectory);

            var compileResult = this.Compiler.Compile(
                this.CompilerPath,
                sourceFilePath,
                this.CompilerAdditionalArguments);

            return(compileResult);
        }
 protected virtual string CreateSubmissionFile <TInput>(IExecutionContext <TInput> executionContext)
 => JavaCodePreprocessorHelper.CreateSubmissionFile(
     executionContext.Code,
     this.WorkingDirectory);