![JAR search and dependency download from the Maven repository](/logo.png)
autofixture.generators.DefaultGeneratorsPipeline Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of autofixturegenerator Show documentation
Show all versions of autofixturegenerator Show documentation
An attempt to reimplement core features of a popular .NET anonymous value generator - AutoFixture - in
Java
package autofixture.generators;
import autofixture.exceptions.ObjectCreationException;
import autofixture.interfaces.FixtureContract;
import autofixture.interfaces.GeneratorsPipeline;
import autofixture.interfaces.InstanceGenerator;
import autofixture.interfaces.InstanceType;
import java.util.List;
public class DefaultGeneratorsPipeline implements GeneratorsPipeline {
private final List generators;
private int customizationsCount = 0;
private boolean autoPropertiesDisabled = false;
public DefaultGeneratorsPipeline(final List generators) {
this.generators = generators;
}
@Override
public T executeFor(final InstanceType instanceType, final FixtureContract fixture) {
for (final InstanceGenerator generator : generators) {
if (generator.appliesTo(instanceType)) {
return generator.next(instanceType, fixture);
}
}
throw new ObjectCreationException(instanceType);
}
@Override
public void registerCustomization(final InstanceGenerator instanceGenerator) {
generators.add(0, instanceGenerator);
instanceGenerator.setOmittingAutoProperties(this.autoPropertiesDisabled);
customizationsCount++;
}
@Override
public void clearCustomizations() {
for (int i = 0; i < customizationsCount; ++i) {
generators.remove(0);
}
customizationsCount = 0;
}
@Override
public void setOmittingAutoProperties(final boolean isOn) {
autoPropertiesDisabled = isOn;
for (final InstanceGenerator generator : generators) {
generator.setOmittingAutoProperties(isOn);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy