/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.operation.imports; import net.codjo.model.TableHome; import net.codjo.operation.BehaviorLoader; import net.codjo.persistent.Model; import net.codjo.persistent.PersistenceException; import net.codjo.persistent.Persistent; import net.codjo.persistent.Reference; import net.codjo.persistent.sql.SimpleHome; import net.codjo.utils.ConnectionManager; import net.codjo.utils.sql.event.DbChangeListener; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; /** * Class Home pour les objets ImportBehavior. * * <p> * Cette classe utilise les tables PM_FIELD_IMPORT_SETTINGS et PM_IMPORT_SETTINGS. * </p> * * @author $Author: blazart $ * @version $Revision: 1.3 $ * */ public class ImportBehaviorHome extends SimpleHome implements BehaviorLoader { /** Description of the Field */ public TableHome tableHome; private FieldImportHome fieldImportHome; private ConnectionManager connectionManager; /** * Constructor for the ImportBehaviorHome object * * @param con Une connnection * @param conMan Manager de connection (pour l'import) * @param tableHome Home table * * @exception SQLException En cas d'erreur lors de l'acces a la base */ public ImportBehaviorHome(Connection con, ConnectionManager conMan, TableHome tableHome) throws SQLException { super(con, ResourceBundle.getBundle("ImportBehaviorHome")); this.tableHome = tableHome; fieldImportHome = new FieldImportHome(con); connectionManager = conMan; } /** * Retourne une reference avec ID. * * @param importID Description of Parameter * * @return The Reference value */ public Reference getReference(int importID) { return getReference(new Integer(importID)); } /** * Retourne un listener mettant a jours la couche de persistance au niveau de * TranslationBehaviorHome lors des changements directe en Base. * * @return The DbChangeListener value * * @see net.codjo.utils.SimpleHome#DefaultDbChangeListener */ public DbChangeListener getDbChangeListener() { return new DefaultDbChangeListener(); } /** * Retourne toutes les behaviors pr�sents dans la base. * * @return Une liste de tous les behaviors * * @exception PersistenceException - */ public List getAllBehavior() throws PersistenceException { return getAllObjects(); } /** * Retourne l'ID du comportement d'import. * * @return "I" */ public final String getBehaviorID() { return "I"; } /** * Retourne le label du comportement d'import. * * @return "Import" */ public final String getBehaviorLabel() { return "Import"; } /** * Retourne le model gerant les comportements d'import. * * @return <code>this</code> */ public final Model getHome() { return this; } /** * Retourne le home pour les FieldImport. * * @return The FieldImportHome value */ public FieldImportHome getFieldImportHome() { return fieldImportHome; } /** * Retourne tous les <code>IMPORT_SETTINGS_ID</code> dans un tabeau d'objets. * * @return Tous les IMPORT_SETTINGS_ID * * @exception SQLException - */ public Object[] getAllId() throws SQLException { Statement stmt = getConnection().createStatement(); List listId = new ArrayList(); try { ResultSet rs = stmt.executeQuery("select IMPORT_SETTINGS_ID" + " from PM_IMPORT_SETTINGS"); while (rs.next()) { listId.add(rs.getObject(1)); } } finally { stmt.close(); } return listId.toArray(); } /** * Convertit (pour patcher) Le fieldSeparator. Cette methode est utilise a cause des * BCP car il convertit "\t" en "\\t". * * @param fieldSeparator Description of Parameter * * @return Description of the Returned Value * * @todo cette methode sera a vire lorsque les BCP ne seront plus utilise */ public String convertFieldSeparator(String fieldSeparator) { if ("\\t".equals(fieldSeparator)) { fieldSeparator = "\t"; } return fieldSeparator; } /** * Charge un objet. * * @param rs - * @param ref - * * @return - * * @exception SQLException - * @exception PersistenceException - */ protected Persistent loadObject(ResultSet rs, Reference ref) throws SQLException, PersistenceException { ImportBehavior b = (ImportBehavior)super.loadObject(rs, ref); b.setConnectionManager(connectionManager); fieldImportHome.loadFieldImport(b); return b; } }