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