GenerationResults.java
/*
* Copyright 2006-2026 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mybatis.generator.codegen;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import org.jspecify.annotations.Nullable;
import org.mybatis.generator.api.GeneratedJavaFile;
import org.mybatis.generator.api.GeneratedKotlinFile;
import org.mybatis.generator.api.GeneratedXmlFile;
import org.mybatis.generator.api.GenericGeneratedFile;
import org.mybatis.generator.api.JavaFormatter;
import org.mybatis.generator.api.KotlinFormatter;
import org.mybatis.generator.api.XmlFormatter;
/**
* Container for generated files from a single context.
* Also includes information needed for writing those files to disk.
*/
public class GenerationResults {
private final CalculatedContextValues contextValues;
private final List<GeneratedJavaFile> generatedJavaFiles;
private final List<GeneratedXmlFile> generatedXmlFiles;
private final List<GeneratedKotlinFile> generatedKotlinFiles;
private final List<GenericGeneratedFile> generatedGenericFiles;
protected GenerationResults(Builder builder) {
contextValues = Objects.requireNonNull(builder.contextValues);
generatedJavaFiles = builder.generatedJavaFiles;
generatedXmlFiles = builder.generatedXmlFiles;
generatedKotlinFiles = builder.generatedKotlinFiles;
generatedGenericFiles = builder.generatedGenericFiles;
}
public JavaFormatter javaFormatter() {
return contextValues.javaFormatter();
}
public KotlinFormatter kotlinFormatter() {
return contextValues.kotlinFormatter();
}
public XmlFormatter xmlFormatter() {
return contextValues.xmlFormatter();
}
public @Nullable String javaFileEncoding() {
return contextValues.javaFileEncoding();
}
public @Nullable String kotlinFileEncoding() {
return contextValues.kotlinFileEncoding();
}
public List<GeneratedJavaFile> generatedJavaFiles() {
return generatedJavaFiles;
}
public List<GeneratedXmlFile> generatedXmlFiles() {
return generatedXmlFiles;
}
public List<GeneratedKotlinFile> generatedKotlinFiles() {
return generatedKotlinFiles;
}
public List<GenericGeneratedFile> generatedGenericFiles() {
return generatedGenericFiles;
}
public int getNumberOfGeneratedFiles() {
return generatedJavaFiles().size()
+ generatedXmlFiles().size()
+ generatedKotlinFiles().size()
+ generatedGenericFiles().size();
}
public static class Builder {
private @Nullable CalculatedContextValues contextValues;
private final List<GeneratedJavaFile> generatedJavaFiles = new ArrayList<>();
private final List<GeneratedXmlFile> generatedXmlFiles = new ArrayList<>();
private final List<GeneratedKotlinFile> generatedKotlinFiles = new ArrayList<>();
private final List<GenericGeneratedFile> generatedGenericFiles = new ArrayList<>();
public Builder withContextValues(CalculatedContextValues contextValues) {
this.contextValues = contextValues;
return this;
}
public Builder withGeneratedJavaFiles(List<GeneratedJavaFile> generatedJavaFiles) {
this.generatedJavaFiles.addAll(generatedJavaFiles);
return this;
}
public Builder withGeneratedKotlinFiles(List<GeneratedKotlinFile> generatedKotlinFiles) {
this.generatedKotlinFiles.addAll(generatedKotlinFiles);
return this;
}
public Builder withGeneratedXmlFiles(List<GeneratedXmlFile> generatedXmlFiles) {
this.generatedXmlFiles.addAll(generatedXmlFiles);
return this;
}
public Builder withGeneratedGenericFiles(List<GenericGeneratedFile> generatedGenericFiles) {
this.generatedGenericFiles.addAll(generatedGenericFiles);
return this;
}
public GenerationResults build() {
return new GenerationResults(this);
}
}
}