KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > util > CompiereStatementVO


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Smart Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2003 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.util;
15
16 import java.io.Serializable JavaDoc;
17 import java.util.ArrayList JavaDoc;
18
19 /**
20  * Compiere Statement Value Object
21  *
22  * @author Jorg Janke
23  * @version $Id: CompiereStatementVO.java,v 1.3 2003/08/08 16:15:28 jjanke Exp $
24  */

25 public class CompiereStatementVO implements Serializable JavaDoc
26 {
27     /**
28      * Constructor
29      * @param sql sql
30      * @param resultSetType type
31      * @param resultSetConcurrency concurrency
32      */

33     public CompiereStatementVO (String JavaDoc sql, int resultSetType, int resultSetConcurrency)
34     {
35         setSql(sql);
36         setResultSetType(resultSetType);
37         setResultSetConcurrency(resultSetConcurrency);
38     } // CompiereStatementVO
39

40     private String JavaDoc m_sql;
41     private int m_resultSetType;
42     private int m_resultSetConcurrency;
43     /** Parameters */
44     private ArrayList JavaDoc m_parameters = new ArrayList JavaDoc();
45
46     /**
47      * String representation
48      * @return info
49      */

50     public String JavaDoc toString()
51     {
52         StringBuffer JavaDoc sb = new StringBuffer JavaDoc("CompiereStatementVO[");
53         sb.append(m_sql);
54         for (int i = 0; i < m_parameters.size(); i++)
55             sb.append("; #").append(i+1).append("=").append(m_parameters.get(i));
56         sb.append("]");
57         return sb.toString();
58     } // toString
59

60     /**
61      * Set Parameter
62      * @param index1 1 based index
63      * @param element element
64      */

65     public void setParameter (int index1, Object JavaDoc element)
66     {
67         if (element != null && !(element instanceof Serializable JavaDoc))
68             throw new java.lang.RuntimeException JavaDoc("setParameter not Serializable - " + element.getClass().toString());
69         int zeroIndex = index1 - 1;
70         if (m_parameters.size() == zeroIndex)
71         {
72             m_parameters.add(element);
73         }
74         else if (m_parameters.size() < zeroIndex)
75         {
76             while (m_parameters.size() < zeroIndex)
77                 m_parameters.add (null); // fill with nulls
78
m_parameters.add(element);
79         }
80         else
81             m_parameters.set(zeroIndex, element);
82     } // setParametsr
83

84     /**
85      * Clear Parameters
86      */

87     public void clearParameters()
88     {
89         m_parameters = new ArrayList JavaDoc();
90     } // clearParameters
91

92     public ArrayList JavaDoc getParameters()
93     {
94         return m_parameters;
95     } // getParameters
96

97     /**
98      * Get SQL
99      * @return sql
100      */

101     public String JavaDoc getSql()
102     {
103         return m_sql;
104     } // getSql
105

106     /**
107      * Set SQL.
108      * Replace ROWID with TRIM(ROWID) for remote SQL
109      * to convert into String as ROWID is not serialized
110      * @param sql sql
111      */

112     public void setSql(String JavaDoc sql)
113     {
114         // Handle RowID in the select part (not where clause)
115
int pos = sql.indexOf("ROWID");
116         int posTrim = sql.indexOf("TRIM(ROWID)");
117         int posWhere = sql.indexOf("WHERE");
118         if (pos != -1 && posTrim == -1 && (posWhere == -1 || pos < posWhere))
119             m_sql = sql.substring(0, pos) + "TRIM(ROWID)" + sql.substring(pos+5);
120         else
121             m_sql = sql;
122     } // setSql
123

124     public int getResultSetConcurrency()
125     {
126         return m_resultSetConcurrency;
127     }
128     public int getResultSetType()
129     {
130         return m_resultSetType;
131     }
132
133     public void setResultSetType(int resultSetType)
134     {
135         m_resultSetType = resultSetType;
136     }
137     public void setResultSetConcurrency(int resultSetConcurrency)
138     {
139         m_resultSetConcurrency = resultSetConcurrency;
140     }
141
142 } // CompiereStatementVO
143
Popular Tags