Bonjour,
Je doit comprendre cette partie d'une classe, et son fonctionnement, si vous voulez bien m'aider par des commentaires ou des explications.
La classe en question est utilisé pour valider les champs d'un formulaire rempli par l'utilisateur avant le submit, la validation se fait à travers des fichiers de configuration, de format txt, c a d, il y a un mapping entre les champs ou field et le contenu des fichiers, trés compliqué, aidez moi svp
Merci infiniment,
// try to open the file stream
try {
FileReader validationFileReader = new FileReader(validationFileName);
LineNumberReader validationLNR = new LineNumberReader(validationFileReader);
String head = validationLNR.readLine();
List entryNames = new Vector();
StringTokenizer stringTokenizerHead = new StringTokenizer(head, entryDelimiter);
while (stringTokenizerHead.hasMoreTokens()) {
entryNames.add(stringTokenizerHead.nextToken().trim());
}
Iterator entryNamesIterator = entryNames.iterator();
while (entryNamesIterator.hasNext()) {
String entryName = (String) entryNamesIterator.next();
if (entryName.endsWith("#")) {
output.put(entryName, new TreeSet(new LongComparator()));
} else {
output.put(entryName, new TreeSet());
}
}
String line = validationLNR.readLine();
while (line != null && !line.equals("")) {
List lineValues = new Vector();
StringTokenizer stringTokenizerLine = new StringTokenizer(line, entryDelimiter);
while (stringTokenizerLine.hasMoreTokens()) {
List values = new Vector();
StringTokenizer valuesTokenizer =
new StringTokenizer(stringTokenizerLine.nextToken(), valuesDelimiter);
while (valuesTokenizer.hasMoreTokens()) {
values.add(valuesTokenizer.nextToken().trim());
}
lineValues.add(values);
}
for (int i = 0; i < entryNames.size(); i++) {
boolean add = true;
for (int j = 0; j < lineValues.size(); j++) {
if (i != j) {
List parameterValues = (List) parameters.get(entryNames.get(j));
if (parameterValues == null) {
throw new Exception("Parameter '" + entryNames.get(j) + "' is null!");
}
if (!parameterValues.isEmpty()) {
boolean addThis = true;
List values = (List) lineValues.get(j);
for (int k = 0; k < parameterValues.size(); k++) {
if (!values.contains(parameterValues.get(k))) {
addThis = false;
}
}
if (!addThis) {
add = false;
}
}
}
}
if (add) {
Set entrySet = (Set) output.get(entryNames.get(i));
List values = (List) lineValues.get(i);
for (int k = 0; k < values.size(); k++) {
entrySet.add(values.get(k));
}
}
}
line = validationLNR.readLine();
}