Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

[java] Méthode

Century, le lundi 12 juin 2006 à 18:26:18 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un souci concernant le codage des méthodes car je ne sais pas comment m'y prendre.

Pourriez-vous m'aider

Merci

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


la classe qui l'implémente
public class QueryFacoryImpl implements QueryFactory {
 
  public Query query(CharSequence word) {
     // construction d'un objet query en fonction de word
     //return query;
  }
  
  public Query query(Pattern pattern) {
     // construction d'un objet query en fonction de pattern
     //return query;
  }
  
  public Query or(Query query1,Query query2) {
     // construction d'un objet query en fonction de query1 et query2
     //return query;
  }
  
  public Query and(Query query1,Query query2) {
     // construction d'un objet query en fonction de query1 et query2
     //return query;
  }
}

1

choubaka, le mardi 13 juin 2006 à 07:44:06

Salut

je comprends pas bien ce que tu veux qu'on fasse ...

tu veux qu'on écrive ton code ???

il manque beaucoup trop d'éléments pour qu'on puisse le faire

Chouba,
Pochard d'assaut .. 

Répondre à choubaka

2

 Century, le mardi 13 juin 2006 à 09:07:38

Bonjour,

Désolé, c'est vrai que j'ai mis très peu d'éléments pour être aidé

J'avais codé un exo semblable à celui qui m'est demandé de faire, mais je n'arrive pas à faire les modifications qui s'imposent

J'aurais principalement besoin d'aide concernant les méthodes Query et QueryFactory (qui permettent de faire la recherche) que je n'arrive pas à adapter

L'exo consiste à chercher des mots ou expressions régulières dans un fichier en utilisant le ET(&) et le Ou(|) .

Si vous pouviez m'aider s'il vous plait car j'essaye sans succès

Merci


Les quelques interfaces à implémenter(je ne mets que celles qui me posent problèmes)

Cette interface sert lancer la recherche

public interface Query {
  public Iterable<? extends Result> execute();

  public Iterable<? extends Result> execute(int maxCount);
}


Cette interface sert à utiliser les &, |, les expressions rationnelles ou les expressions "simples"
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);
}



Ce que j'avais codé mais qu'il faut adapter
je tasse un peu le code dans mon post pour des raisons de place...)

J'ai une interface IMatcher qui se charge de dire si le texte donné est "bon" :
public interface IMatcher
{
	public boolean matches(String value);
}


Ensuite j'ai plusieurs Matchers spécialisés qui implémentent cette interface. Certains sont des matchers "simples" (qui travaillent sur une simple chaîne de référence) :
public class ContainsMatcher implements IMatcher
{
	private final String reference;	
	
	public ContainsMatcher(String reference)
	{	this.reference = reference;
	}

	public boolean matches(String value)
	{	return value.contains(reference);
	}
}


Et certains sont "composites" (ils utilisent d'autres matchers pour déterminer si le texte est "bon") :
public class AndMatcher implements IMatcher
{
	private final IMatcher matcher1;
	private final IMatcher matcher2;

	public AndMatcher(IMatcher matcher1, IMatcher matcher2)
	{
		this.matcher1 = matcher1;
		this.matcher2 = matcher2;
	}

	public boolean matches(String value)
	{	return ( matcher1.matches(value) && matcher2.matches(value) );
	}
}


Ensuite, j'ai une MatcherFactory, à qui on donne l'expression de recherche ("& titi toto"), et qui se charge de l'analyser et de construire la hiérarchie des Matchers correspondante :
public class MatcherFactory
{
	// C'est la méthode publique que notre programme va appeler
	public static IMatcher createMatcher(String pattern)
	{
		ArrayList<String> expList = new ArrayList<String>(Arrays.asList(pattern.split("\\s+")));
		return getSpecializedMatcher(expList);
	}
		
	// Méthode récursive, qui lit le premier élément de la liste des expressions, et
	// renvoie le Matcher correspondant.
	private static IMatcher getSpecializedMatcher(List<String> expList)
	{
		String exp = expList.remove(0);
		if ("&".equals(exp))
		{
			IMatcher operand1 = getSpecializedMatcher(expList);
			IMatcher operand2 = getSpecializedMatcher(expList);
			return new AndMatcher(operand1, operand2);
		}
		else if ("|".equals(exp))
		{
			IMatcher operand1 = getSpecializedMatcher(expList);
			IMatcher operand2 = getSpecializedMatcher(expList);
			return new OrMatcher(operand1, operand2);
		}
		else if (exp.startsWith("@"))
		{	return new RegexMatcher(exp.substring(1));
		}
		else if (exp.startsWith("!"))
		{	return new ExactMatcher(exp.substring(1));
		}
		else
		{	return new ContainsMatcher(exp);
		}		
	}
}

Répondre à Century
Java : méthode painComponent jamais appelée Bonjour, Je sollicite votre aide car je suis légèrement bloqué sur un bout de code java Voilà, j'ai un JPanel tout ce qu'il y a de plus normal, j'y ajoute des données dans un gridLayout et j'y met une image de fond. Le problème est au niveau de... www.commentcamarche.net/forum/affich-2781018-java-methode-paincomponent-jamais-appelee
[JAVA] methode/fonction Bonjour, je voudrais comparer deux éléments mais pour cela je dois d'abordm'assurer qu'ils sont du même type. Le paramètre "args" reçu par la methode "main( )" est un tableau de String. Il faut donc que j'arrive à comparer cette "String" avec une... www.commentcamarche.net/forum/affich-2105175-java-methode-fonction
Methode static et non static en java (Résolu) Bonjour, je fait pas la différence entre une méthode static et une méthode non static en java pourriez vous m'expliquer c quoi la difference avec des exemples si vous pouvez ???? et merci d'avence www.commentcamarche.net/forum/affich-9193620-methode-static-et-non-static-en-java
Le mot-clé static ou les attributs et méthodes de classe en POO(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore.,... www.commentcamarche.net/faq/sujet-14564-le-mot-cle-static-ou-les-attributs-et-methodes-de-classe-en-poo
La méthode toString() (Résolu)Salut tout l'monde, En clair, mon problème c'est de savoir : 1- à quoi sert la methode toString() en Java. 2- Comment l'utiliser. je ss debutant, c'est vrai,.. mais je crois qu'on est tous passé par là, Merci de bien vouloir illustrer un/des exemple(s) :) www.commentcamarche.net/forum/affich-5552544-la-methode-tostring
La methode split en javaBonjour, esq je peut utiliser la méthode split par 2 expressions séparatives? par exemple je veut séparer une chaine de caracteres par des points et des etoiles www.commentcamarche.net/forum/affich-5519846-la-methode-split-en-java
Classe abstraite et interface de javaBonsoir tt le monde , j'ai un peu du mal à comprendre les inerfaces et les classes abstraite en java j'ai lu pas mal du tutoriel et j'ai compris au niveau des methode (dans le classe fille on doit inpmlementer tout les methode de l'interface... www.commentcamarche.net/forum/affich-10082762-classe-abstraite-et-interface-de-java
Java: Les méthodesLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs... www.commentcamarche.net/contents/java/javafonc.php3
Java - Premier programmePremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main... www.commentcamarche.net/contents/java/javaprem.php3
Java - L'API JDBCIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec... www.commentcamarche.net/contents/java/javajdbc.php3