RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie <V> |
Le RegexTrie est un trie où chacun stockée segment de la clé est une ERROR(/Pattern)
regex ERROR(/Pattern)
. Ainsi, le plein stockée clé est une List<Pattern>
plutôt qu'une List<String>
comme dans un trie standard. Notez que la méthode retrieve(String)
sera mise en correspondance point par point avec les Pattern
, plutôt que vérifiée pour l'égalité point par point comme dans un trie standard. Pour cette raison, il peut fonctionner mal pour les grands ensembles de données.
On peut également utiliser une entrée
null
dans la séquence
Pattern
pour servir de joker. Si une valeur
null
est rencontrée, toutes les entrées suivantes de la séquence seront ignorées. Lorsque le code de récupération rencontre un
Pattern
null
, il attend d'abord de voir si une entrée plus spécifique correspond à la séquence. Si tel est le cas, cette entrée plus spécifique continuera, même si elle échoue par la suite.
Si aucune entrée plus spécifique ne correspond, la correspondance générique ajoutera toutes les
String
restantes à la liste des captures (si activée) et renverra la valeur associée au caractère générique.
Un court exemple de la fonctionnalité générique:
List<List<String>> captures = new LinkedList<List<String>>();
RegexTrie<Integer> trie = new RegexTrie<Integer>();
trie.put(2, "a", null);
trie.put(4, "a", "b");
trie.retrieve(captures, "a", "c", "e");
// returns 2. captures is now [[], ["c"], ["e"]]
trie.retrieve(captures, "a", "b");
// returns 4. captures is now [[], []]
trie.retrieve(captures, "a", "b", "c");
// returns null. captures is now [[], []]
Résumé
Méthodes publiques |
---|
void | clear () |
V | put (V value, Pattern... patterns) Ajoutez une entrée au trie. |
V | retrieve (String... strings) Récupérez une valeur du trie, en faisant correspondre la séquence fournie deString s à une séquence d' ERROR(/Pattern) s stockée dans le trie. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Récupérez une valeur du trie, en faisant correspondre la séquence fournie deString s à une séquence d' ERROR(/Pattern) s stockée dans le trie. |
String | toString () |
Constructeurs publics
RegexTrie
public RegexTrie ()
Méthodes publiques
dégager
public void clear ()
mettre
public V put (V value,
Pattern... patterns)
Ajoutez une entrée au trie.
Paramètres |
---|
value | V : la valeur à définir |
patterns | Pattern : la séquence d' ERROR(/Pattern) s qui doivent être mises en correspondance séquentiellement pour récupérer la value associée |
récupérer
public V retrieve (String... strings)
Récupérez une valeur du trie, en faisant correspondre la séquence fournie deString
s à une séquence d' ERROR(/Pattern)
s stockée dans le trie.
Paramètres |
---|
strings | String : une séquence deString à faire correspondre |
Retour |
---|
V | La valeur associée, ou null si aucune valeur n'a été trouvée |
récupérer
public V retrieve ( captures,
String... strings)
Récupérez une valeur du trie, en faisant correspondre la séquence fournie deString
s à une séquence d' ERROR(/Pattern)
s stockée dans le trie. Cette version de la méthode renvoie également une ERROR(/List)
de groupes de capture pour chaque ERROR(/Pattern)
correspondant.
Chaque entrée de la liste externe correspond à un niveau de
Pattern
dans le trie. Pour chaque niveau, la liste des groupes de capture sera stockée. S'il n'y a pas eu de capture pour un niveau particulier, une liste vide sera stockée.
Notez que les
captures
seront
ERROR(/List#clear())
avant le début de la récupération. En outre, si la récupération échoue après une séquence partielle de correspondances, les
captures
refléteront toujours les groupes de capture de la correspondance partielle.
Paramètres |
---|
captures | : Une List<List<String>> travers laquelle les groupes de capture seront renvoyés. |
strings | String : une séquence deString à faire correspondre |
Retour |
---|
V | La valeur associée, ou null si aucune valeur n'a été trouvée |
toString
public String toString ()