Re-architect Constraint so the base class contains a boolean modifier (used for not-ing etc.) and uses the isSatisfiedBy method to delegate to subclass implementations of satisfiedBy and then apply the modifier.