KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > model > MPInstance


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.model;
15
16 import java.util.*;
17 import java.sql.*;
18 import java.math.*;
19
20 import org.compiere.util.DB;
21
22 /**
23  * Process Instance Model
24  *
25  * @author Jorg Janke
26  * @version $Id: MPInstance.java,v 1.2 2003/09/27 01:22:19 jjanke Exp $
27  */

28 public class MPInstance extends X_AD_PInstance
29 {
30     /**
31      * Standard Constructor
32      * @param ctx context
33      * @param AD_PInstance_ID instance or 0
34      */

35     public MPInstance (Properties ctx, int AD_PInstance_ID)
36     {
37         super (ctx, AD_PInstance_ID);
38         if (AD_PInstance_ID == 0)
39         {
40             setAD_Process_ID (0);
41             setRecord_ID (0);
42             setIsProcessing (false);
43         }
44     } // MPInstance
45

46     /**
47      * Load Constructor
48      * @param ctx context
49      * @param rs result set
50      */

51     public MPInstance (Properties ctx, ResultSet rs)
52     {
53         super (ctx, rs);
54     } // MPInstance
55

56     /**
57      * Create Process Instance from Process
58      * @param process process
59      * @param Record_ID Record
60      */

61     public MPInstance (MProcess process, int Record_ID)
62     {
63         super (process.getCtx(), 0);
64         setAD_Process_ID (process.getAD_Process_ID());
65         setRecord_ID (Record_ID);
66         setIsProcessing (false);
67         save(); // need to save for parameters
68
// Set Parameter Base Info
69
MProcess_Para[] para = process.getParameter();
70         for (int i = 0; i < para.length; i++)
71         {
72             MPInstance_Para pip = new MPInstance_Para (process.getCtx(), getAD_PInstance_ID(), para[i].getSeqNo());
73             pip.setParameterName(para[i].getColumnName());
74             pip.setInfo(para[i].getName());
75             pip.save();
76         }
77     } // MPInstance
78

79     protected POInfo initPO (Properties ctx)
80     {
81         int AD_Table_ID = 282;
82         POInfo poi = POInfo.getPOInfo (ctx, AD_Table_ID);
83         return poi;
84     }
85
86     /** Parameters */
87     private MPInstance_Para[] m_parameters = null;
88
89     /**
90      * Get Parameters
91      * @return parameter array
92      */

93     public MPInstance_Para[] getParameter()
94     {
95         if (m_parameters != null)
96             return m_parameters;
97         ArrayList list = new ArrayList();
98         //
99
String JavaDoc sql = "SELECT * FROM AD_PInstance_Para WHERE AD_PInstance_ID=?";
100         PreparedStatement pstmt = null;
101         try
102         {
103             pstmt = DB.prepareStatement(sql);
104             pstmt.setInt(1, getAD_Process_ID());
105             ResultSet rs = pstmt.executeQuery();
106             while (rs.next())
107             {
108                 list.add(new MPInstance_Para(getCtx(), rs));
109             }
110             rs.close();
111             pstmt.close();
112             pstmt = null;
113         }
114         catch (Exception JavaDoc e)
115         {
116             log.error("getParameter", e);
117         }
118         finally
119         {
120             try
121             {
122                 if (pstmt != null)
123                     pstmt.close ();
124             }
125             catch (Exception JavaDoc e)
126             {}
127             pstmt = null;
128         }
129         //
130
m_parameters = new MPInstance_Para[list.size()];
131         list.toArray(m_parameters);
132         return m_parameters;
133     } // getParameters
134

135     /*************************************************************************/
136
137     /** Log Entries */
138     private ArrayList m_log = new ArrayList();
139
140     /**
141      * Get Logs
142      * @return array of logs
143      */

144     public MPInstance_Log[] getLog()
145     {
146         // load it from DB
147
m_log.clear();
148         String JavaDoc sql = "SELECT * FROM AD_PInstance_Log WHERE AD_PInstance_ID=? ORDER BY Log_ID";
149         PreparedStatement pstmt = null;
150         try
151         {
152             pstmt = DB.prepareStatement(sql);
153             pstmt.setInt(1, getAD_PInstance_ID());
154             ResultSet rs = pstmt.executeQuery();
155             while (rs.next())
156             {
157                 m_log.add(new MPInstance_Log(rs));
158             }
159             rs.close();
160             pstmt.close();
161             pstmt = null;
162         }
163         catch (Exception JavaDoc e)
164         {
165             log.error("getLog", e);
166         }
167         finally
168         {
169             try
170             {
171                 if (pstmt != null)
172                     pstmt.close ();
173             }
174             catch (Exception JavaDoc e)
175             {}
176             pstmt = null;
177         }
178
179         MPInstance_Log[] retValue = new MPInstance_Log[m_log.size()];
180         m_log.toArray(retValue);
181         return retValue;
182     } // getLog
183

184     /**
185      * @param P_Date date
186      * @param P_ID id
187      * @param P_Number number
188      * @param P_Msg msg
189      */

190     public void addLog (Timestamp P_Date, int P_ID, BigDecimal P_Number, String JavaDoc P_Msg)
191     {
192         MPInstance_Log logEntry = new MPInstance_Log (getAD_PInstance_ID(), m_log.size()+1,
193             P_Date, P_ID, P_Number, P_Msg);
194         m_log.add(logEntry);
195         // save it to DB ?
196
// log.save();
197
} // addLog
198

199
200     /*************************************************************************/
201
202     /**
203      * Save
204      * @return true if saved
205      */

206     public boolean save ()
207     {
208         log.debug ("save");
209         return super.save ();
210     } // save
211

212     public String JavaDoc toString ()
213     {
214         StringBuffer JavaDoc sb = new StringBuffer JavaDoc ("MPInstance[")
215             .append (getID())
216             .append(",OK=").append(isOK());
217         String JavaDoc msg = getErrorMsg();
218         if (msg != null && msg.length() > 0)
219             sb.append(msg);
220         sb.append ("]");
221         return sb.toString ();
222     } // toString
223

224     public void log()
225     {
226         log.info(toString());
227         MPInstance_Log[] pil = getLog();
228         for (int i = 0; i < pil.length; i++)
229             log.info(pil[i]);
230     } // log
231

232     public void setRecord_ID (int Record_ID)
233     {
234         setValue ("Record_ID", new Integer JavaDoc(Record_ID));
235     }
236
237     public int getRecord_ID ()
238     {
239         Integer JavaDoc ii = (Integer JavaDoc)getValue ("Record_ID");
240         if (ii == null)
241             return 0;
242         return ii.intValue ();
243     }
244
245     public void setIsProcessing (boolean IsProcessing)
246     {
247         setValue ("IsProcessing", new Boolean JavaDoc (IsProcessing));
248     }
249
250     public boolean isProcessing ()
251     {
252         Boolean JavaDoc bb = (Boolean JavaDoc)getValue ("IsProcessing");
253         if (bb != null)
254             return bb.booleanValue ();
255         return false;
256     }
257
258     public void setAD_User_ID (int AD_User_ID)
259     {
260         setValue ("AD_User_ID", new Integer JavaDoc (AD_User_ID));
261     }
262
263     public int getAD_User_ID ()
264     {
265         Integer JavaDoc ii = (Integer JavaDoc)getValue ("AD_User_ID");
266         if (ii == null)
267             return 0;
268         return ii.intValue ();
269     }
270
271     public void setErrorMsg (String JavaDoc Errormsg)
272     {
273         setValue ("ErrorMsg", Errormsg);
274     }
275
276     public String JavaDoc getErrorMsg ()
277     {
278         return (String JavaDoc)getValue ("ErrorMsg");
279     }
280
281     public void setResult (int Result)
282     {
283         setValue ("Result", new Integer JavaDoc (Result));
284     }
285
286     public static final int RESULT_OK = 1;
287     public static final int RESULT_ERROR = 0;
288
289     public int getResult ()
290     {
291         Integer JavaDoc ii = (Integer JavaDoc)getValue ("Result");
292         if (ii == null)
293             return 0;
294         return ii.intValue ();
295     }
296
297     public boolean isOK()
298     {
299         return getResult() == RESULT_OK;
300     }
301
302     public void setAD_Process_ID (int AD_Process_ID)
303     {
304         setValue ("AD_Process_ID", new Integer JavaDoc (AD_Process_ID));
305     }
306
307     public int getAD_Process_ID ()
308     {
309         Integer JavaDoc ii = (Integer JavaDoc)getValue ("AD_Process_ID");
310         if (ii == null)
311             return 0;
312         return ii.intValue ();
313     }
314
315     void setAD_PInstance_ID (int AD_PInstance_ID)
316     {
317         setValueNoCheck ("AD_PInstance_ID", new Integer JavaDoc (AD_PInstance_ID));
318     }
319
320     public int getAD_PInstance_ID ()
321     {
322         Integer JavaDoc ii = (Integer JavaDoc)getValue ("AD_PInstance_ID");
323         if (ii == null)
324             return 0;
325         return ii.intValue ();
326     }
327
328 } // MPInstance
329
Popular Tags