package com.flextrade.jfixture.customisation;
import com.flextrade.jfixture.JFixture;
import com.flextrade.jfixture.behaviours.autoproperty.AutoPropertyBehaviour;
import com.flextrade.jfixture.specifications.InverseSpecification;
import com.flextrade.jfixture.specifications.NeverSpecification;
import com.flextrade.jfixture.specifications.Specification;
import com.flextrade.jfixture.specifications.TypeInHierarchySpecification;
import java.lang.reflect.Type;
public class OmitAutoPropertyCustomisation implements Customisation {
private final Specification specification;
public OmitAutoPropertyCustomisation() {
this.specification = new NeverSpecification();
}
public OmitAutoPropertyCustomisation(Type type) {
this.specification = new InverseSpecification(new TypeInHierarchySpecification(type));
}
@Override
public void customise(JFixture fixture) {
AutoPropertyBehaviour apb = fixture.behaviours().find(AutoPropertyBehaviour.class);
if (apb == null) return;
apb.specifications().add(this.specification);
}
}