EmptyTweetFilter.java

package tweetoscope.tweetsFilter;

import com.twitter.clientlib.model.Tweet;

/**
 * =====================================================
 * CLASSE EmptyTweetFilter - Filtre neutre (accepte tous)
 * =====================================================
 * 
 * Ce filtre accepte TOUS les tweets sans exception.
 * C'est un filtre neutre qui ne rejette rien.
 * 
 * Objectif :
 * Servir de filtre par défaut ou de point de départ quand aucun filtrage n'est nécessaire.
 * 
 * Utilisation :
 * - Mode "pas de filtre" → afficher tous les tweets
 * - Déboguer le pipeline (filtrer sans filtrer)
 * - Tests de performance sans filtrage
 * 
 * Comportement :
 * - match(n'importe quel tweet) → TOUJOURS true
 * - Aucune condition, aucune vérification
 * - Aussi rapide que possible (pas de logique)
 * 
 * Exemple d'utilisation :
 * - filters.add(new EmptyTweetFilter());
 *   → Le pipeline accepte 100% des tweets
 *   → Pas de tweets rejetés
 * 
 * Pattern :
 * Ce filtre implémente le pattern NULL OBJECT.
 * - Fournit un comportement neutre par défaut
 * - Évite les null checks partout dans le code
 * - Respecte l'interface FilterCondition
 */
public class EmptyTweetFilter implements TweetFilter.FilterCondition {

	/**
	 * =====================================================
	 * MÉTHODE match() - Accepte TOUS les tweets
	 * =====================================================
	 * 
	 * Implémentation simple de l'interface FilterCondition.
	 * Retourne TOUJOURS true, peu importe le tweet.
	 * 
	 * Logique :
	 * - Pas de condition
	 * - Pas de vérification
	 * - Pas de rejet
	 * - Retourne simplement true pour chaque appel
	 * 
	 * Complexité :
	 * - O(1) : opération constante, aucun calcul
	 * - Très performant (juste un retour booléen)
	 * 
	 * Exemples :
	 *   match(tweet1) → true ✓
	 *   match(tweet2) → true ✓
	 *   match(tweet3) → true ✓
	 *   match(null) → true ✓ (même null)
	 * 
	 * Utilité :
	 * - Filtre par défaut quand aucun filtrage n'est voulu
	 * - Élément de base des chaînes de filtres complexes
	 * - Permet de tester le système sans rejeter de tweets
	 * 
	 * @param tweet Le tweet à tester (IGNORÉ)
	 * @return TOUJOURS true, quel que soit le tweet
	 */
	@Override
	public boolean match(Tweet tweet) {
		// Accepte tous les tweets sans condition
		return true;
	}
}