private void genererDataColCall() {
try {
// Préparation des donnée à manipuler et exécution de la requête de
// lecture
double[] ajoutPosition = new double[tranchesColPosition.length];
// On vérifie la présence de données
if (rsColCall.first()) {
double aCours, aMontant;
rsColCall.beforeFirst();
// POTENTIELLE-SPECIFIQUE
while (rsColCall.next()) {
// Si on a un enregistrement ici, alors il existe des
// instruments de Cashflow
hasInstrumentCashflow = true;
// On récupère les données de l'enregistrement courant
aCours = rsColCall.getDouble(KEY_COURS);
aMontant = rsColCall.getDouble(KEY_MONTANT);
// Ensuite, on détermine la ligne traitée
if (aCours < tranches[0]) {
tranchesColCall[POS_POTENTIELLE_SPECIFIQUE] += aMontant;
ajoutPosition[POS_POTENTIELLE_SPECIFIQUE] += aMontant;
} else if (aCours >= tranches[tranches.length - 1]) {
tranchesColCall[POS_POTENTIELLE_SPECIFIQUE + tranches.length - 1] += aMontant;
ajoutPosition[POS_POTENTIELLE_SPECIFIQUE + tranches.length - 1] += aMontant;
} else {
boolean aTrancheTrouvee = false;
for (int i = 1; (i < tranches.length ) && !aTrancheTrouvee; i++) {
if ((aCours >= tranches[i - 1]) && (aCours < tranches[i])) {
tranchesColCall[POS_POTENTIELLE_SPECIFIQUE + i] += aMontant;
ajoutPosition[POS_POTENTIELLE_SPECIFIQUE + i] += aMontant;
aTrancheTrouvee = true;
}
}
}
}
// Les autres cas (Certaines et Potentielle Mutualisable) sans
// tranches sont nuls
tranchesColCall[POS_POTENTIELLE_MUTUALISABLE] = 0;
tranchesColCall[POS_CERTAINE_MUTUALISABLE] = 0;
tranchesColCall[POS_CERTAINE_SPECIFIQUE] = 0;
// Enfin, on applique aux positions les sommes à ajouter
for (int iap = 0; iap < ajoutPosition.length; iap++) {
for (int itp = iap; itp < tranchesColPosition.length; itp++) {
tranchesColPosition[itp] += ajoutPosition[iap];
}
}
}
} catch (SQLException e) {
LOG.error("Une erreur est survenue", e);
}
}
