001: /*
002: * $Id: EntityFindOptions.java,v 1.2 2003/10/11 19:04:22 ajzeneski Exp $
003: *
004: * Copyright (c) 2002 The Open For Business Project - www.ofbiz.org
005: *
006: * Permission is hereby granted, free of charge, to any person obtaining a
007: * copy of this software and associated documentation files (the "Software"),
008: * to deal in the Software without restriction, including without limitation
009: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
010: * and/or sell copies of the Software, and to permit persons to whom the
011: * Software is furnished to do so, subject to the following conditions:
012: *
013: * The above copyright notice and this permission notice shall be included
014: * in all copies or substantial portions of the Software.
015: *
016: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
017: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
018: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
019: * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
020: * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
021: * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
022: * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
023: */
024: package org.ofbiz.entity.util;
025:
026: import java.sql.ResultSet;
027:
028: /**
029: * Contains a number of variables used to select certain advanced finding options.
030: *
031: *@author <a href="mailto:jonesde@ofbiz.org">David E. Jones</a>
032: *@version $Revision: 1.2 $
033: *@since 2.0
034: */
035: public class EntityFindOptions implements java.io.Serializable {
036:
037: /** Type constant from the java.sql.ResultSet object for convenience */
038: public static final int TYPE_FORWARD_ONLY = ResultSet.TYPE_FORWARD_ONLY;
039:
040: /** Type constant from the java.sql.ResultSet object for convenience */
041: public static final int TYPE_SCROLL_INSENSITIVE = ResultSet.TYPE_SCROLL_INSENSITIVE;
042:
043: /** Type constant from the java.sql.ResultSet object for convenience */
044: public static final int TYPE_SCROLL_SENSITIVE = ResultSet.TYPE_SCROLL_SENSITIVE;
045:
046: /** Concurrency constant from the java.sql.ResultSet object for convenience */
047: public static final int CONCUR_READ_ONLY = ResultSet.CONCUR_READ_ONLY;
048:
049: /** Concurrency constant from the java.sql.ResultSet object for convenience */
050: public static final int CONCUR_UPDATABLE = ResultSet.CONCUR_UPDATABLE;
051:
052: protected boolean specifyTypeAndConcur = true;
053: protected int resultSetType = TYPE_FORWARD_ONLY;
054: protected int resultSetConcurrency = CONCUR_READ_ONLY;
055: protected boolean distinct = false;
056:
057: /** Default constructor. Defaults are as follows:
058: * specifyTypeAndConcur = true
059: * resultSetType = TYPE_FORWARD_ONLY
060: * resultSetConcurrency = CONCUR_READ_ONLY
061: * distinct = false
062: */
063: public EntityFindOptions() {
064: }
065:
066: public EntityFindOptions(boolean specifyTypeAndConcur,
067: int resultSetType, int resultSetConcurrency,
068: boolean distinct) {
069: this .specifyTypeAndConcur = specifyTypeAndConcur;
070: this .resultSetType = resultSetType;
071: this .resultSetConcurrency = resultSetConcurrency;
072: this .distinct = distinct;
073: }
074:
075: /** If true the following two parameters (resultSetType and resultSetConcurrency) will be used to specify
076: * how the results will be used; if false the default values for the JDBC driver will be used
077: */
078: public boolean getSpecifyTypeAndConcur() {
079: return specifyTypeAndConcur;
080: }
081:
082: /** If true the following two parameters (resultSetType and resultSetConcurrency) will be used to specify
083: * how the results will be used; if false the default values for the JDBC driver will be used
084: */
085: public void setSpecifyTypeAndConcur(boolean specifyTypeAndConcur) {
086: this .specifyTypeAndConcur = specifyTypeAndConcur;
087: }
088:
089: /** Specifies how the ResultSet will be traversed. Available values: ResultSet.TYPE_FORWARD_ONLY,
090: * ResultSet.TYPE_SCROLL_INSENSITIVE or ResultSet.TYPE_SCROLL_SENSITIVE. See the java.sql.ResultSet JavaDoc for
091: * more information. If you want it to be fast, use the common default: ResultSet.TYPE_FORWARD_ONLY.
092: */
093: public int getResultSetType() {
094: return resultSetType;
095: }
096:
097: /** Specifies how the ResultSet will be traversed. Available values: ResultSet.TYPE_FORWARD_ONLY,
098: * ResultSet.TYPE_SCROLL_INSENSITIVE or ResultSet.TYPE_SCROLL_SENSITIVE. See the java.sql.ResultSet JavaDoc for
099: * more information. If you want it to be fast, use the common default: ResultSet.TYPE_FORWARD_ONLY.
100: */
101: public void setResultSetType(int resultSetType) {
102: this .resultSetType = resultSetType;
103: }
104:
105: /** Specifies whether or not the ResultSet can be updated. Available values:
106: * ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE. Should pretty much always be
107: * ResultSet.CONCUR_READ_ONLY with the Entity Engine.
108: */
109: public int getResultSetConcurrency() {
110: return resultSetConcurrency;
111: }
112:
113: /** Specifies whether or not the ResultSet can be updated. Available values:
114: * ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE. Should pretty much always be
115: * ResultSet.CONCUR_READ_ONLY with the Entity Engine.
116: */
117: public void setResultSetConcurrency(int resultSetConcurrency) {
118: this .resultSetConcurrency = resultSetConcurrency;
119: }
120:
121: /** Specifies whether the values returned should be filtered to remove duplicate values. */
122: public boolean getDistinct() {
123: return distinct;
124: }
125:
126: /** Specifies whether the values returned should be filtered to remove duplicate values. */
127: public void setDistinct(boolean distinct) {
128: this.distinct = distinct;
129: }
130: }
|