package com.flextrade.jfixture.builders;
import com.flextrade.jfixture.*;
import com.flextrade.jfixture.requests.enrichers.CompositeRequestEnricher;
import com.flextrade.jfixture.requests.enrichers.FromListRequestEnricher;
import com.flextrade.jfixture.requests.enrichers.RangeRequestEnricher;
import com.flextrade.jfixture.specifications.AlwaysSpecification;
import com.flextrade.jfixture.specifications.TypeRequestSpecification;
import com.flextrade.jfixture.utility.RandomElementStrategy;
import com.flextrade.jfixture.utility.comparators.ConstructorParameterCountComparator;
import com.flextrade.jfixture.utility.comparators.MethodParameterCountComparator;
import java.util.ArrayList;
import java.util.Collection;
public class DefaultEngineParts {
public DefaultEngineParts() {
this.add(new SeededStringBuilder());
this.add(new StringGenerator());
this.add(new NumberInRangeGenerator());
this.add(new UuidGenerator());
this.add(new DateGenerator());
this.add(new CalendarBuilder());
this.add(new SwitchingBooleanGenerator());
this.add(new CharacterGenerator());
this.add(new EnumBuilder());
this.add(new UrlBuilder());
this.add(new UriBuilder());
this.add(new MultipleSpecimenRelay(this.multipleCount));
this.add(new ArrayRelay());
this.add(new IterableRelay());
this.add(new MapRelay());
this.add(new KeyValuePairRelay());
this.add(new MapBuilder());
this.add(new QueueBuilder());
this.add(new SetBuilder());
this.add(new IterableBuilder());
this.add(new GenericMethodBuilder());
this.add(new GenericFieldRelay());
this.add(new FieldRelay(
new CompositeRequestEnricher(
new RangeRequestEnricher(),
new FromListRequestEnricher())));
this.add(new GenericConstructorRelay());
this.add(new FactoryMethodRelay());
this.add(new ClassToConstructorRelay(
new DefaultConstructorQuery(new ConstructorParameterCountComparator()),
new AlwaysSpecification()));
this.add(new ClassToFactoryMethodRelay(
new DefaultFactoryMethodQuery(new MethodParameterCountComparator()),
new TypeRequestSpecification()));
this.add(new ClassToConstructorRelay(
new PackageProtectedConstructorsQuery(new ConstructorParameterCountComparator()),
new AlwaysSpecification()));
this.add(new CalendarRangeRelay());
this.add(new DateRangeRelay());
this.add(new NumericRangeRelay());
this.add(new ElementFromListRelay(
new RandomElementStrategy()));
this.add(new SeedIgnoringRelay());
}
public MultipleCount multipleCount() {
return this.multipleCount;
}
public Collection<SpecimenBuilder> builders() {
return this.builders;
}
private void add(SpecimenBuilder builder) {
this.builders.add(builder);
}
private final MultipleCount multipleCount = new MultipleCount();
private final ArrayList<SpecimenBuilder> builders = new ArrayList<SpecimenBuilder>();
}