RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie<V> |
Le RegexTrie est un trie où chaque stocké segment de la clé est une regex ERROR(/Pattern)
. Ainsi, le plein stocké key est une List<Pattern>
plutôt qu'une List<String>
comme dans un essai standard. Notez que la méthode retrieve(String)
sera mise en correspondance point par point avec les Pattern
s, 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 caractère générique. Si une
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 c'est le cas, cette entrée plus spécifique se poursuivra, même si elle ne correspond pas par la suite.
Si aucune entrée plus spécifique ne correspond, la correspondance générique ajoutera toutes
String
restantes à la liste des captures (si activées) et renverra la valeur associée au caractère générique.
Un court échantillon 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) Ajouter une entrée au trie. |
V | retrieve (String... strings) Extraire une valeur du trie, en faisant correspondre la séquence de String fournie à une séquence de ERROR(/Pattern) stockée dans le trie. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Extraire une valeur du trie, en faisant correspondre la séquence de String fournie à une séquence de ERROR(/Pattern) stockée dans le trie. |
String | toString () |
Constructeurs publics
RegexTrie
public RegexTrie ()
Méthodes publiques
clair
public void clear ()
mettre
public V put (V value,
Pattern... patterns)
Ajouter une entrée au trie.
Paramètres |
---|
value | V : La valeur à régler |
patterns | Pattern : La séquence de ERROR(/Pattern) s qui doit être mise en correspondance séquentiellement pour récupérer la value associée |
récupérer
public V retrieve (String... strings)
Extraire une valeur du trie, en faisant correspondre la séquence de String
fournie à une séquence de ERROR(/Pattern)
stockée dans le trie.
Paramètres |
---|
strings | String : Une séquence de String s à 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)
Extraire une valeur du trie, en faisant correspondre la séquence de String
fournie à une séquence de ERROR(/Pattern)
stockée dans le trie. Cette version de la méthode renvoie également une ERROR(/List)
de groupes de capture pour chaque ERROR(/Pattern)
qui correspondait.
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 captures pour un niveau particulier, une liste vide sera stockée.
Notez que
captures
seront
ERROR(/List#clear())
ed avant le début de la récupération. De plus, si la récupération échoue après une séquence partielle de correspondances,
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 de String s à faire correspondre |
Retour |
---|
V | La valeur associée, ou null si aucune valeur n'a été trouvée |
toString
public String toString ()