From 1aa6c9334457287454401ca3814068d6c8161950 Mon Sep 17 00:00:00 2001 From: vpj-cd Date: Fri, 28 Nov 2008 00:06:15 +0000 Subject: [PATCH] [ 2354040 ] Implementation Replication Mode, Type, Event http://sourceforge.net/tracker/index.php?func=detail&aid=2354040&group_id=176962&atid=879335 --- .../compiere/model/MReplicationStrategy.java | 153 +++++++++--------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/base/src/org/compiere/model/MReplicationStrategy.java b/base/src/org/compiere/model/MReplicationStrategy.java index 01c859d1ec..e69debf506 100644 --- a/base/src/org/compiere/model/MReplicationStrategy.java +++ b/base/src/org/compiere/model/MReplicationStrategy.java @@ -1,18 +1,30 @@ +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * Copyright (C) 2003-2007 e-Evolution,SC. All Rights Reserved. * + * Contributor(s): Victor Perez www.e-evolution.com * + * Contributor(s): Trifon N. Trifonov * + *****************************************************************************/ + package org.compiere.model; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; +import java.util.Collection; import java.util.Properties; -import java.util.logging.Level; import org.compiere.util.CLogger; -import org.compiere.util.DB; /** * @author Trifon N. Trifonov + * @author victor.perez@e-evolution.com, e-Evolution */ public class MReplicationStrategy extends X_AD_ReplicationStrategy { @@ -21,84 +33,73 @@ public class MReplicationStrategy extends X_AD_ReplicationStrategy { */ private static final long serialVersionUID = 1L; + public static final int REPLICATION_TABLE =0; + public static final int REPLICATION_DOCUMENT =1; + + /** Static Logger */ private static CLogger s_log = CLogger.getCLogger (MReplicationStrategy.class); + - + /** + * Constructor + * @param ctx + * @param AD_ReplicationStrategy_ID + * @param trxName + */ public MReplicationStrategy(Properties ctx, int AD_ReplicationStrategy_ID, String trxName) { super(ctx, AD_ReplicationStrategy_ID, trxName); } - public X_AD_ReplicationTable[] getReplicationTables() { - List resultList = new ArrayList(); - - StringBuffer sql = new StringBuffer("SELECT * ") - .append(" FROM ").append(X_AD_ReplicationTable.Table_Name) - .append(" WHERE ").append(X_AD_ReplicationTable.COLUMNNAME_AD_ReplicationStrategy_ID).append("=?") // #1 - .append(" AND IsActive = ?") // #2 -// .append(" ORDER BY ").append(orderBy) - ; - PreparedStatement pstmt = null; - X_AD_ReplicationTable rplTable = null; - try { - pstmt = DB.prepareStatement (sql.toString(), get_TrxName()); - pstmt.setInt(1, getAD_ReplicationStrategy_ID()); - pstmt.setString(2, "Y"); - ResultSet rs = pstmt.executeQuery (); - while ( rs.next() ) { - rplTable = new X_AD_ReplicationTable (getCtx(), rs, get_TrxName()); - resultList.add(rplTable); - } - rs.close (); - pstmt.close (); - pstmt = null; - } catch (SQLException e) { - s_log.log(Level.SEVERE, sql.toString(), e); - } finally { - try { - if (pstmt != null) pstmt.close (); - pstmt = null; - } catch (Exception e) { pstmt = null; } - } - - X_AD_ReplicationTable[] result = (X_AD_ReplicationTable[])resultList.toArray( new X_AD_ReplicationTable[0]); - return result; + /** + * @return the collection the X_AD_ReplicationTable + */ + public Collection getReplicationTables() { + String whereClause = new StringBuffer(X_AD_ReplicationTable.COLUMNNAME_AD_ReplicationStrategy_ID)+"=?"; // #1 + return new Query(getCtx(),X_AD_ReplicationTable.Table_Name,whereClause,get_TrxName()) + .setParameters(new Object[]{getAD_ReplicationStrategy_ID()}) + .setApplyAccessFilter(true) + .list(); } - public X_AD_ReplicationDocument[] getReplicationDocuments() { - List resultList = new ArrayList(); - - StringBuffer sql = new StringBuffer("SELECT * ") - .append(" FROM ").append(X_AD_ReplicationDocument.Table_Name) - .append(" WHERE ").append(X_AD_ReplicationDocument.COLUMNNAME_AD_ReplicationStrategy_ID).append("=?") // #1 - .append(" AND IsActive = ?") // #2 -// .append(" ORDER BY ").append(orderBy) - ; - PreparedStatement pstmt = null; - X_AD_ReplicationDocument rplDocument = null; - try { - pstmt = DB.prepareStatement (sql.toString(), get_TrxName()); - pstmt.setInt(1, getAD_ReplicationStrategy_ID()); - pstmt.setString(2, "Y"); - ResultSet rs = pstmt.executeQuery (); - while ( rs.next() ) { - rplDocument = new X_AD_ReplicationDocument (getCtx(), rs, get_TrxName()); - resultList.add(rplDocument); - } - rs.close (); - pstmt.close (); - pstmt = null; - } catch (SQLException e) { - s_log.log(Level.SEVERE, sql.toString(), e); - } finally { - try { - if (pstmt != null) pstmt.close (); - pstmt = null; - } catch (Exception e) { pstmt = null; } - } - - X_AD_ReplicationDocument[] result = (X_AD_ReplicationDocument[])resultList.toArray( new X_AD_ReplicationDocument[0]); - return result; + /** + * @return the collection the X_AD_ReplicationDocument + */ + public Collection getReplicationDocuments() { + String whereClause = "AD_ReplicationStrategy_ID=?"; // #1 + return new Query(getCtx(),X_AD_ReplicationDocument.Table_Name,whereClause,get_TrxName()) + .setParameters(new Object[]{getAD_ReplicationStrategy_ID()}) + .setApplyAccessFilter(true) + .list(); + } + + /** + * + * @param AD_Table_ID + * @return X_AD_ReplicationTable table to replication + */ + public static X_AD_ReplicationTable getReplicationTable(Properties ctx ,int AD_ReplicationStrategy_ID, int AD_Table_ID) + { + String whereClause = "AD_ReplicationStrategy_ID=? AND AD_Table_ID=?"; + return new Query(ctx,X_AD_ReplicationTable.Table_Name,whereClause, null) + .setApplyAccessFilter(true) + .setParameters(new Object[]{AD_ReplicationStrategy_ID,AD_Table_ID}) + .first(); + } + + /** + * + * @param AD_Table_ID + * @return X_AD_ReplicationDocument Document to replication + */ + public static X_AD_ReplicationDocument getReplicationDocument(Properties ctx ,int AD_ReplicationStrategy_ID , int AD_Table_ID) + { + String whereClause = "AD_ReplicationStrategy_ID=? AND AD_Table_ID=?"; + new Query(ctx ,X_AD_ReplicationDocument.Table_Name,whereClause, null) + .setApplyAccessFilter(true) + .setParameters(new Object[]{AD_ReplicationStrategy_ID,AD_Table_ID}) + .first(); + return null; } }