/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.operation; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * Cette interface definit une classe responsable de la gestion des anomalies d'un * traitement. * * @author $Author: blazart $ * @version $Revision: 1.2 $ * */ public interface AnomalyReport extends Cloneable { /** * Duplication de cette AnomalyReport. Cette methode est utilise pour le pattern * Prototype. * * @return Une copie conforme de cette instance. */ public Object clone(); /** * Indique si cette <code>AnomalyReport</code> a besoin de pouvoir ecrire dans la * table source. * * @return 'true' si les anomalies sont repercut�es dans le table source. */ boolean needsSourceUpdatable(); /** * Indique si cette <code>AnomalyReport</code> a besoin de pouvoir ecrire dans la * table destination. * * @return 'true' si les anomalies sont repercut�es dans le table dest. */ boolean needsDestinationUpdatable(); /** * Retourne les noms de colonne mis-a-jour pour la gestion des anomalies. * * @return Tableau de String (ex: "ANOMALY", "ANOMALY_LOG") */ String[] getColumnsName(); /** * Indique si cet <code>AnomalyReport</code> autorise le traitement d'ecrire dans la * table destination. * * @return 'true' l'ecriture est possible */ boolean isWriteAllowed(); /** * Indique si il y a des anomalies. * * @return 'true' si anomaly */ boolean hasAnomaly(); /** * Efface toutes les anomalies. */ void clearAnomaly(); /** * Mets a jour les champs Anomaly de la table source (si necessaire). Si la methode * <code>needsSourceUpdatable()</code> retourne false, alors cette methode ne fait * rien. * * @param rsSrc Un resultSet sur la table source * * @exception SQLException Erreur base */ void updateSource(ResultSet rsSrc) throws SQLException; /** * Mets a jour les champs Anomaly de la table destination (si necessaire). Si la * methode <code>needsDestinationUpdatable()</code> retourne false, alors cette * methode ne fait rien. * * @param stmt Le statement ecrivant dans la table destination * @param idx L'index ou se trouve le premier parametre des colonnes Anomalies * (retourne par getColumnsName()) * * @exception SQLException Erreur base */ void updateDestination(PreparedStatement stmt, int idx) throws SQLException; /** * Ajoute une erreur dans cette <code>AnomalyReport</code> . * * @param anomalyLog Le texte de l'erreur. */ void addAnomaly(String anomalyLog); }