All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.amygdalum.testrecorder.profile.ConfigurableSerializationProfile Maven / Gradle / Ivy

package net.amygdalum.testrecorder.profile;

import static java.util.Arrays.asList;

import java.util.ArrayList;
import java.util.List;

public class ConfigurableSerializationProfile implements SerializationProfile {

	private List fieldExclusions;
	private List fieldFacades;
	private List classExclusions;
	private List classFacades;
	private List globalFields;
	private List inputs;
	private List outputs;
	private List recorded;

	private List classes;

	public ConfigurableSerializationProfile() {
		this.fieldExclusions = new ArrayList<>();
		this.fieldFacades = new ArrayList<>();
		this.classExclusions = new ArrayList<>();
		this.classFacades = new ArrayList<>();
		this.globalFields = new ArrayList<>();
		this.inputs = new ArrayList<>();
		this.outputs = new ArrayList<>();
		this.recorded = new ArrayList<>();
		this.classes = new ArrayList<>();
	}

	public ConfigurableSerializationProfile(SerializationProfile base) {
		this.fieldExclusions = new ArrayList<>(base.getFieldExclusions());
		this.fieldFacades = new ArrayList<>(base.getFieldFacades());
		this.classExclusions = new ArrayList<>(base.getClassExclusions());
		this.classFacades = new ArrayList<>(base.getClassFacades());
		this.globalFields = new ArrayList<>(base.getGlobalFields());
		this.inputs = new ArrayList<>(base.getInputs());
		this.outputs = new ArrayList<>(base.getOutputs());
		this.recorded = new ArrayList<>(base.getRecorded());
		this.classes = new ArrayList<>(base.getClasses());
	}

	public static Builder builder() {
		return new Builder();
	}

	public static Builder builder(SerializationProfile base) {
		return new Builder(base);
	}

	@Override
	public List getClasses() {
		return classes;
	}

	@Override
	public List getFieldExclusions() {
		return fieldExclusions;
	}

	@Override
	public List getFieldFacades() {
		return fieldFacades;
	}

	@Override
	public List getClassExclusions() {
		return classExclusions;
	}

	@Override
	public List getClassFacades() {
		return classFacades;
	}

	@Override
	public List getGlobalFields() {
		return globalFields;
	}

	@Override
	public List getInputs() {
		return inputs;
	}

	@Override
	public List getOutputs() {
		return outputs;
	}

	@Override
	public List getRecorded() {
		return recorded;
	}

	public static class Builder {

		private ConfigurableSerializationProfile profile;

		public Builder() {
			this.profile = new ConfigurableSerializationProfile();
		}

		public Builder(SerializationProfile base) {
			this.profile = new ConfigurableSerializationProfile(base);
		}

		public Builder withClasses(Classes... classes) {
			return withClasses(asList(classes));
		}

		public Builder withClasses(List classes) {
			profile.classes.addAll(classes);
			return this;
		}

		public Builder withRecorded(Methods... methods) {
			return withRecorded(asList(methods));
		}

		public Builder withRecorded(List methods) {
			profile.recorded.addAll(methods);
			return this;
		}

		public Builder withFieldExclusions(Fields... fieldExclusions) {
			return withFieldExclusions(asList(fieldExclusions));
		}
		
		public Builder withFieldExclusions(List fieldExclusions) {
			profile.fieldExclusions.addAll(fieldExclusions);
			return this;
		}

		public Builder withFieldFacades(Fields... fieldFacades) {
			return withFieldFacades(asList(fieldFacades));
		}
		
		public Builder withFieldFacades(List fieldFacades) {
			profile.fieldFacades.addAll(fieldFacades);
			return this;
		}
		
		public Builder withClassExclusions(Classes... classExclusions) {
			return withClassExclusions(asList(classExclusions));
		}
		
		public Builder withClassExclusions(List classExclusions) {
			profile.classExclusions.addAll(classExclusions);
			return this;
		}

		public Builder withClassFacades(Classes... classFacades) {
			return withClassFacades(asList(classFacades));
		}
		
		public Builder withClassFacades(List classFacades) {
			profile.classFacades.addAll(classFacades);
			return this;
		}
		
		public Builder withGlobalFields(Fields... globalFields) {
			return withGlobalFields(asList(globalFields));
		}
		
		public Builder withGlobalFields(List globalFields) {
			profile.globalFields.addAll(globalFields);
			return this;
		}

		public Builder withInputs(Methods... inputs) {
			return withInputs(asList(inputs));
		}
		
		public Builder withInputs(List inputs) {
			profile.inputs.addAll(inputs);
			return this;
		}

		public Builder withOutputs(Methods... outputs) {
			return withOutputs(asList(outputs));
		}
		
		public Builder withOutputs(List outputs) {
			profile.outputs.addAll(outputs);
			return this;
		}

		public ConfigurableSerializationProfile build() {
			return profile;
		}

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy