Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
/*
* Configuration
*/
// Flux en entrée
Object inStream = Cases;
// Flux en sortie
Object [] outStreams = new Object[] {
case1,
case2,
case3,
case4,
case5,
case6,
case7,
case8,
case9,
case10,
case11,
case12,
case13,
case14,
case15,
case16,
case17,
case18,
case19,
case20};
// Séparateur du nom de la colonne et de l'indice de la colonne
char separator = '_';
/*
* Routine
*/
// Classe du flux d'entrée
Class clazz = inStream.getClass();
// Parcours des champs du flux d'entrée
for (java.lang.reflect.Field field : clazz.getDeclaredFields()) {
// Nom du champ
String fieldName = field.getName();
// Valeur du champ
field.setAccessible(true);
Object value = field.get(inStream);
int separatorIndex = fieldName.indexOf(separator);
if (separatorIndex > -1) {
// C'est un champ indexé
// Index du champ. (Les index des champs commencent à 1.
int index = Integer.parseInt(fieldName.substring(separatorIndex + 1)) - 1;
// Récupération du flux de sortie correspondant
Object outStream = outStreams;
// Nom de la colonne
String column = fieldName.substring(0, separatorIndex);
// Set de la valeur dans le flux de sortie
Object out = outStreams;
java.lang.reflect.Field outField = out.getClass().getDeclaredField(column);
outField.setAccessible(true);
outField.set(out, value);
} else {
// Ce n'est pas un champ indexé
// Set de la valeur dans tous les flux de sortie
for (Object out : outStreams) {
java.lang.reflect.Field outField = out.getClass().getDeclaredField(fieldName);
outField.setAccessible(true);
outField.set(out, value);
}
}
}
private String CompteId;
private String TYPE_XX; // XX :01 ->20
private String AR_XX;
private String NR_XX;
private String NC_XX;
private String BC_XX;
private String ETBC_XX;
private String CompteId;
private String TYPE;
private String AR;
private String NR;
private String NC;
private String BC;
private String ETBC;
/*
* Configuration
*/
// Flux en entrée
Object inStream = Cases;
// Flux en sortie
Object outStream = Case;
// Séparateur du nom de la colonne et de l'indice de la colonne
char separator = '_';
/*
* Routine
*/
// Classe du flux d'entrée
Class<?> clazz = inStream.getClass();
// Map contenant les différentes valeurs par colonnes
java.util.Map<String, List<String>> columns = new java.util.HashMap<String, List<String>>();
// Parcours des champs du flux d'entrée
for (java.lang.reflect.Field field : clazz.getDeclaredFields()) {
// Nom du champ
String fieldName = field.getName();
if ("this$0".equals(fieldName)) {
continue;
}
String columnName = fieldName;
// Valeur du champ
field.setAccessible(true);
String value = (String) field.get(inStream);
int separatorIndex = fieldName.indexOf(separator);
if (separatorIndex > -1) {
// C'est un champ indexé
// Index du champ. (Les index des champs commencent à 1.
int index = Integer.parseInt(fieldName.substring(separatorIndex + 1)) - 1;
// Nom de la colonne
columnName = fieldName.substring(0, separatorIndex);
// Enregistrement de la valeur dans la map
List<String> values = columns.get(columnName);
if (values == null) {
values = new java.util.ArrayList<String>();
columns.put(columnName, values);
}
values.add(index, value);
} else {
// Ce n'est pas un champ indexé
// Enregistrement de la valeur dans la map
columns.put(columnName, java.util.Arrays.asList(value));
}
}
int nbIndexedColumns = columns.values().iterator().next().size();
for (int i = 0; i < nbIndexedColumns; i++) {
// Remplissange du flux de sortie
for (java.util.Map.Entry<String, List<String>> column : columns.entrySet()) {
String outValue = "";
List<String> values = column.getValue();
if (values.size() == 1) {
// Cas d'une colonne non indexée
outValue = values.get(0);
} else {
// Cas d'une colonne indexée
outValue = values.get(i);
}
// Set de la valeur de sortie
java.lang.reflect.Field outField = outStream.getClass().getDeclaredField(column.getKey());
outField.setAccessible(true);
outField.set(outStream, outValue);
}
// Début du traitement
// Fin du traitement
}