class BenchmarkReportConfig extends AbstractConfig<BenchmarkReportConfig> {

    @XmlJavaTypeAdapter(JaxbLocaleAdapter.class)
    private Locale locale = null;
    private SolverRankingType solverRankingType = null;
    private Class<? extends Comparator<SolverBenchmarkResult>> solverRankingComparatorClass = null;
    private Class<? extends SolverRankingWeightFactory> solverRankingWeightFactoryClass = null;

    public BenchmarkReportConfig() {
    }

    public BenchmarkReportConfig(BenchmarkReportConfig inheritedConfig) {
        inherit(inheritedConfig);
    }

    public Locale getLocale() {
        return locale;
    }

    public void setLocale(Locale locale) {
        this.locale = locale;
    }

    public SolverRankingType getSolverRankingType() {
        return solverRankingType;
    }

    public void setSolverRankingType(SolverRankingType solverRankingType) {
        this.solverRankingType = solverRankingType;
    }

    public Class<? extends Comparator<SolverBenchmarkResult>> getSolverRankingComparatorClass() {
        return solverRankingComparatorClass;
    }

    public void setSolverRankingComparatorClass(
            Class<? extends Comparator<SolverBenchmarkResult>> solverRankingComparatorClass) {
        this.solverRankingComparatorClass = solverRankingComparatorClass;
    }

    public Class<? extends SolverRankingWeightFactory> getSolverRankingWeightFactoryClass() {
        return solverRankingWeightFactoryClass;
    }

    public void setSolverRankingWeightFactoryClass(
            Class<? extends SolverRankingWeightFactory> solverRankingWeightFactoryClass) {
        this.solverRankingWeightFactoryClass = solverRankingWeightFactoryClass;
    }

    public Locale determineLocale() {
        return getLocale() == null ? Locale.getDefault() : getLocale();
    }

    // ************************************************************************
    // With methods
    // ************************************************************************

    public BenchmarkReportConfig withLocale(Locale locale) {
        this.setLocale(locale);
        return this;
    }

    public BenchmarkReportConfig withSolverRankingType(SolverRankingType solverRankingType) {
        this.setSolverRankingType(solverRankingType);
        return this;
    }

    public BenchmarkReportConfig withSolverRankingComparatorClass(
            Class<? extends Comparator<SolverBenchmarkResult>> solverRankingComparatorClass) {
        this.setSolverRankingComparatorClass(solverRankingComparatorClass);
        return this;
    }

    public BenchmarkReportConfig withSolverRankingWeightFactoryClass(
            Class<? extends SolverRankingWeightFactory> solverRankingWeightFactoryClass) {
        this.setSolverRankingWeightFactoryClass(solverRankingWeightFactoryClass);
        return this;
    }

    @Override
    public BenchmarkReportConfig inherit(BenchmarkReportConfig inheritedConfig) {<FILL_FUNCTION_BODY>}

    @Override
    public BenchmarkReportConfig copyConfig() {
        return new BenchmarkReportConfig().inherit(this);
    }

    @Override
    public void visitReferencedClasses(Consumer<Class<?>> classVisitor) {
        classVisitor.accept(solverRankingComparatorClass);
        classVisitor.accept(solverRankingWeightFactoryClass);
    }

}

        locale = ConfigUtils.inheritOverwritableProperty(locale, inheritedConfig.getLocale());
        solverRankingType = ConfigUtils.inheritOverwritableProperty(solverRankingType,
                inheritedConfig.getSolverRankingType());
        solverRankingComparatorClass = ConfigUtils.inheritOverwritableProperty(solverRankingComparatorClass,
                inheritedConfig.getSolverRankingComparatorClass());
        solverRankingWeightFactoryClass = ConfigUtils.inheritOverwritableProperty(solverRankingWeightFactoryClass,
                inheritedConfig.getSolverRankingWeightFactoryClass());
        return this;
    
<methods>public non-sealed void <init>() ,public abstract org.optaplanner.benchmark.config.report.BenchmarkReportConfig copyConfig() ,public abstract org.optaplanner.benchmark.config.report.BenchmarkReportConfig inherit(org.optaplanner.benchmark.config.report.BenchmarkReportConfig) ,public java.lang.String toString() ,public abstract void visitReferencedClasses(Consumer<Class<?>>) <variables>