package org.qi4j.api.query.grammar; import org.qi4j.api.composite.Composite; import org.qi4j.functional.Specification; import org.qi4j.functional.Specifications; /** * AND Specification. */ public class AndSpecification extends BinarySpecification { public AndSpecification( Iterable<Specification<Composite>> operands ) { super( operands ); } @Override public boolean satisfiedBy( Composite item ) { return Specifications.and( operands ).satisfiedBy( item ); } @Override public String toString() { StringBuilder sb = new StringBuilder( "(" ); String and = ""; for( Specification<Composite> operand : operands ) { sb.append( and ).append( operand ); and = " and "; } return sb.append( ")" ).toString(); } }