01: /*
02: * $Id: EntityWhereString.java,v 1.4 2003/11/07 00:33:56 jonesde Exp $
03: *
04: * Copyright (c) 2001, 2002 The Open For Business Project - www.ofbiz.org
05: *
06: * Permission is hereby granted, free of charge, to any person obtaining a
07: * copy of this software and associated documentation files (the "Software"),
08: * to deal in the Software without restriction, including without limitation
09: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10: * and/or sell copies of the Software, and to permit persons to whom the
11: * Software is furnished to do so, subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included
14: * in all copies or substantial portions of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19: * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20: * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
21: * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
22: * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23: *
24: */
25: package org.ofbiz.entity.condition;
26:
27: import java.util.List;
28:
29: import org.ofbiz.entity.GenericModelException;
30: import org.ofbiz.entity.GenericEntity;
31: import org.ofbiz.entity.model.ModelEntity;
32:
33: /**
34: * <p>Encapsulates SQL expressions used for where clause snippets.
35: * NOTE: This is UNSAFE and BREAKS the idea behind the Entity Engine where
36: * you avoid directly specifying SQL. So, KEEP IT MINIMAL and preferrably replace
37: * it when the feature you are getting at is implemented in a more automatic way for you.</p>
38: *
39: * <p>By minimal I mean use this in conjunction with other EntityConditions like the
40: * EntityExpr, EntityConditionList and EntityFieldMap objects which more cleanly
41: * encapsulate where conditions and don't require you to directly write SQL.</p>
42: *
43: * @author <a href="mailto:jonesde@ofbiz.org">David E. Jones</a>
44: * @version $Revision: 1.4 $
45: * @since 2.0
46: */
47: public class EntityWhereString extends EntityCondition {
48:
49: protected String sqlString;
50:
51: protected EntityWhereString() {
52: }
53:
54: public EntityWhereString(String sqlString) {
55: this .sqlString = sqlString;
56: }
57:
58: public String makeWhereString(ModelEntity modelEntity,
59: List entityConditionParams) {
60: return sqlString;
61: }
62:
63: public void checkCondition(ModelEntity modelEntity)
64: throws GenericModelException {// no nothing, this is always assumed to be fine... could do funky SQL syntax checking, but hey this is a HACK anyway
65: }
66:
67: public boolean entityMatches(GenericEntity entity) {
68: throw new UnsupportedOperationException(
69: "Cannot do entityMatches on a WhereString, ie no SQL evaluation in EE; Where String is: "
70: + sqlString);
71: }
72: }
|