package org.qi4j.api.query.grammar; import org.qi4j.api.composite.Composite; import org.qi4j.functional.Specification; import org.qi4j.functional.Specifications; /** * NOT Specification. */ public class NotSpecification implements Specification<Composite> { private Specification<Composite> operand; public NotSpecification( Specification<Composite> operand ) { this.operand = operand; } public Specification<Composite> operand() { return operand; } @Override public boolean satisfiedBy( Composite item ) { return Specifications.not( operand ).satisfiedBy( item ); } @Override public String toString() { return "!" + operand.toString(); } }