@SuppressWarnings("unchecked") private ReportOptions parseReportOptions(final List<String> classPath) { final ReportOptions data = new ReportOptions(); if (this.mojo.getProject().getBuild() != null) { Log.getLogger() .info("Mutating from " + this.mojo.getProject().getBuild().getOutputDirectory()); data.setCodePaths( Collections.singleton(this.mojo.getProject().getBuild().getOutputDirectory())); } data.setClassPathElements(classPath); data.setDependencyAnalysisMaxDistance(this.mojo.getMaxDependencyDistance()); data.setFailWhenNoMutations(shouldFailWhenNoMutations()); data.setTargetClasses(determineTargetClasses()); data.setTargetTests(determineTargetTests()); data.setMutateStaticInitializers(this.mojo.isMutateStaticInitializers()); data.setExcludedMethods(globStringsToPredicates(this.mojo.getExcludedMethods())); data.setExcludedClasses(globStringsToPredicates(this.mojo.getExcludedClasses())); data.setNumberOfThreads(this.mojo.getThreads()); data.setMaxMutationsPerClass(this.mojo.getMaxMutationsPerClass()); data.setReportDir(this.mojo.getReportsDirectory().getAbsolutePath()); data.setVerbose(this.mojo.isVerbose()); if (this.mojo.getJvmArgs() != null) { data.addChildJVMArgs(this.mojo.getJvmArgs()); } data.setMutators(determineMutators()); data.setTimeoutConstant(this.mojo.getTimeoutConstant()); data.setTimeoutFactor(this.mojo.getTimeoutFactor()); if (hasValue(this.mojo.getAvoidCallsTo())) { data.setLoggingClasses(this.mojo.getAvoidCallsTo()); } final List<String> sourceRoots = new ArrayList<String>(); sourceRoots.addAll(this.mojo.getProject().getCompileSourceRoots()); sourceRoots.addAll(this.mojo.getProject().getTestCompileSourceRoots()); data.setSourceDirs(stringsTofiles(sourceRoots)); data.addOutputFormats(determineOutputFormats()); setTestType(data); data.setMutationUnitSize(this.mojo.getMutationUnitSize()); data.setShouldCreateTimestampedReports(this.mojo.isTimestampedReports()); data.setDetectInlinedCode(this.mojo.isDetectInlinedCode()); data.setHistoryInputLocation(this.mojo.getHistoryInputFile()); data.setHistoryOutputLocation(this.mojo.getHistoryOutputFile()); data.setExportLineCoverage(this.mojo.isExportLineCoverage()); data.setMutationEngine(this.mojo.getMutationEngine()); data.setJavaExecutable(this.mojo.getJavaExecutable()); return data; }