public override bool isSatisfiedBy(Product product) { IEnumerator <Spec> specifications = this.getSpecs().GetEnumerator(); bool satisfiesAllSpecs = true; while (specifications.MoveNext()) { Spec productSpec = specifications.Current; satisfiesAllSpecs &= productSpec.isSatisfiedBy(product); } return(satisfiesAllSpecs); }
public List <Product> selectBy(Spec spec) { List <Product> foundProducts = new List <Product>(); List <Product> .Enumerator products = iterator(); while (products.MoveNext()) { Product product = products.Current; if (spec.isSatisfiedBy(product)) { foundProducts.Add(product); } } return(foundProducts); }