rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Besoin d'expliquer JAVA

  Posté par developppez, le vendredi 16 mai 2008 à 15:24:05
Bonjour,
çi dessous vous trouverez 2 claase java, trés compliqué ca d, j'arrive pas à les comprendre, est ce que quelqu'un pourrez bien m'expliquer pas à pas le fonctionnement de ces deux classes, svp, c'est urgent.

////////////////////////////////////////////////////
Validator.java
//////////////////////////////////////////////////////

package Validator;
import LongComparator.LongComparator;


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Hashtable;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;
import java.util.Vector;

import org.apache.log4j.Logger;

public class Validator {

static private Logger log = Logger.getLogger(Validator.class);
static private String entryDelimiter = ";";
static private String valuesDelimiter = ",";

// TODO refactor copy-paste
public Map validate(String validationFileName, Map parameterMap) {
// maps field name to valid values
Map output = new Hashtable();
Map parameters = new Hashtable();

Iterator parametersIterator = parameterMap.keySet().iterator();
while (parametersIterator.hasNext()) {
List params = new Vector();
Object key = parametersIterator.next();
StringTokenizer parametersTokenizer =
new StringTokenizer((String) parameterMap.get(key), valuesDelimiter);
while (parametersTokenizer.hasMoreTokens()) {
params.add(parametersTokenizer.nextToken().trim());
}
parameters.put(key, params);
}

// 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();
}
validationLNR.close();
return output;
} catch (FileNotFoundException ex) {
log.error(ex.getMessage());
return null;
} catch (IOException ex) {
log.error(ex.getMessage());
return null;
} catch (Exception ex) {
log.error(ex.getMessage());
return null;
}
}

public boolean isValid(String validationFileName, Map parameterMap) {
boolean valid = false;
Map parameters = new Hashtable();

Iterator parametersIterator = parameterMap.keySet().iterator();
while (parametersIterator.hasNext()) {
List params = new Vector();
Object key = parametersIterator.next();
StringTokenizer parametersTokenizer =
new StringTokenizer((String) parameterMap.get(key), valuesDelimiter);
while (parametersTokenizer.hasMoreTokens()) {
params.add(parametersTokenizer.nextToken().trim());
}
parameters.put(key, params);
}

// 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());
}

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);
}

boolean add = true;
for (int j = 0; j < lineValues.size(); 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) {
valid = true;
break;
}
line = validationLNR.readLine();
}
validationLNR.close();

return valid;
} catch (FileNotFoundException ex) {
log.error(ex.getMessage());
return false;
} catch (IOException ex) {
log.error(ex.getMessage());
return false;
} catch (Exception ex) {
log.error(ex.getMessage());
return false;
}
}
}

////////////////////////////////////////////////////////////////////////

LongComparator.java

////////////////////////////////////////////////////////////////////////
package com.msc.extension.zvalidator;

import java.util.Comparator;

public class LongComparator implements Comparator {

private Long convertToLong(Object o) throws ClassCastException {
Long l;
if (o instanceof Long){
l = (Long) o;
} else if (o instanceof String) {
l = new Long((String) o);
} else {
throw new ClassCastException();
}
return l;
}

public int compare(Object o1, Object o2) throws ClassCastException {
Long l1 = convertToLong(o1);
Long l2 = convertToLong(o2);
return l1.compareTo(l2);
}
}
Configuration: Windows XP
Firefox 2.0.0.14
Répondre à developppez  Signaler ce message aux modérateurs
Logiciels pertinents trouvés dans les téléchargements
Télécharger Java Runtime Environment 6 Update 7Java Runtime Environment - Java Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des...Catégorie: Java
Licence: Open Source
Télécharger Azureus 3.0.5.2bAzureus - Azureus est un client BitTorrent multiplateformes développé en Java, c'est-à-dire un gestionnaire de téléchargement de...Catégorie: Téléchargement
Licence: Open Source
Télécharger FreeMind 0.8.1FreeMind - FreeMind est un logiciel de Mind mapping entièrement libre, permettant de créer des cartes heuristiques permettant de...Catégorie: Organisation
Licence: Open Source
Télécharger Web Developer Toolbar 1.1.6Web Developer Toolbar - WebDeveloper est une extension firefox représentant une formidable boîte à outils pour examiner et manipuler les pages...Catégorie: Extensions Firefox
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Besoin d'expliquer JAVA »