Salut,
Pourriez-vous s'il vous plait m'indiquer comment faire pour coder les méthodes de ces différentes interfaces
En vous remerciant par avance
Ligne de Commande du Logiciel
La ligne de commande permet d'effectuer des requêtes sur un index
java -jar foogle.jar query [-n count] fichier.ext.idx expr
effectue une requête expr sur l'index fichier.ext.idx et affiche l'ensemble des lignes satisfaisant la requête.
-n permet de spécifier le nombre de résultat voulu.
Les requêtes sur l'index correspond à un arbre au format préfixé,
exemple "& toto | titi @t?t?" est équivalent à l'arbre
& toto | titi @t?t?
L'opérateur ET ('&') reporte la ligne uniquement si les deux mots appartiennent à la ligne.
L'opérateur OU ('|') reporte la ligne si un des deux mots appartient à la ligne.
L'opérateur @ permet d'indiquer une expression régulière (au format PERL) pour rechercher les mots.
Lors de requête concernant beaucoup de résultat possible, il est possible de manipuler des itérateurs plutôt que des listes pour éviter d'avoir de grosses structures de données intermédiaires.
Les quelques interfaces à implémenter
import java.util.Collection;
public interface ContextStrategy {
public Collection<? extends CharSequence> getContext(Result result);
}
--------------------------------------------------------------------------
import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.util.Map;
import java.util.regex.Pattern;
public interface FoogleFacade {
public Index loadIndex(File indexFile) throws IOException;
public QueryFactory createQueryFactory(Index index);
}
public interface Index {
public String getFilename();
public ContextStrategy getContextStrategy();
}
public interface Query {
public Iterable<? extends Result> execute();
public Iterable<? extends Result> execute(int maxCount);
}
--------------------------------------------------------------------------
import java.util.regex.Pattern;
public interface QueryFactory {
public Query query(CharSequence word);
public Query query(Pattern pattern);
public Query or(Query query1,Query query2);
public Query and(Query query1,Query query2);
}
public interface Result {
public int getLine();
}
pour pouvoir avoir comme main ceci:
FoogleFacade foogle = new FoogleFacadeImpl();
Index index=foogle.loadIndex(new File("bbe.idx"));
System.out.println("indexed filename:"+index.getFilename());
QueryFactory factory=foogle.createQueryFactory(index);
Query query=factory.and(factory2.query("God"),
factory.query("solid"));
ContextStrategy contextStrategy=index.getContextStrategy();
for(Result result:query.execute(10)) {
System.out.println("line:"+result.getLine());
System.out.println("ctx:"+contextStrategy.getContext(result));
}