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