1 /*
2 * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3 * the spring framework, http://el4j.sf.net
4 * Copyright (C) 2006 by ELCA Informatique SA, Av. de la Harpe 22-24,
5 * 1000 Lausanne, Switzerland, http://www.elca.ch
6 *
7 * EL4J is published under the GNU Lesser General Public License (LGPL)
8 * Version 2.1. See http://www.gnu.org/licenses/
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * For alternative licensing, please contact info@elca.ch
16 */
17 package ch.elca.el4j.services.search.criterias;
18
19 import java.util.ArrayList;
20 import java.util.Arrays;
21 import java.util.List;
22
23 import org.springframework.util.StringUtils;
24
25 /**
26 * Criteria that combines n Criteria with OR (i.e. one
27 * of the Criterias must be true).
28 *
29 * @svnLink $Revision: 3882 $;$Date: 2009-08-04 15:24:14 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/core/src/main/java/ch/elca/el4j/services/search/criterias/OrCriteria.java $
30 *
31 * @author Philipp Oser (POS)
32 */
33 public class OrCriteria implements Criteria {
34
35 protected List<Criteria> m_criterias;
36
37 public OrCriteria (Criteria left, Criteria right) {
38 this(new Criteria[] { left, right});
39 }
40
41 public OrCriteria (Criteria... criterias){
42 m_criterias = new ArrayList<Criteria>(criterias.length);
43 m_criterias.addAll(Arrays.asList(criterias));
44 }
45
46 public String getType() {
47 return "";
48 }
49
50 /**
51 * {@inheritDoc}
52 */
53 public String getSqlWhereCondition() {
54 return "("+StringUtils.arrayToDelimitedString(
55 CriteriaHelper.applyToSqlWhereCondition(m_criterias.toArray(new Criteria[0])),
56 " OR ")+
57 ")";
58 }
59
60 public List<Criteria> getCriterias() {
61 return m_criterias;
62 }
63
64 }