RegexTrie

public class RegexTrie
extends Object

java.lang.Object
com.android.tradefed.util.RegexTrie<V>


RegexTrie est un trie dans lequel chaque segment stocké de la clé est une expression régulière Pattern. Ainsi, la clé stockée complète est une List&lt;Pattern&gt; plutôt qu'une List&lt;String&gt; comme dans un trie standard. Notez que la retrieve(String...) méthode sera mise en correspondance point par point avec les Patterns, plutôt que vérifiée pour l'égalité point par point comme dans un trie standard. Pour cette raison, elle peut être peu performante pour les ensembles de données volumineux.

Vous pouvez également utiliser une entrée null dans la séquence Pattern pour servir de caractère générique. Si un null est rencontré, toutes les entrées suivantes de la séquence seront ignorées. Lorsque le code de récupération rencontre un null Pattern, 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 poursuit, même si elle ne correspond pas par la suite.

Si aucune entrée plus spécifique ne correspond, la correspondance de caractère générique ajoute toutes les Strings restantes à la liste des captures (si elle est activée) et renvoie la valeur associée au caractère générique.

Voici un bref exemple de la fonctionnalité de caractère 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é

Constructeurs publics

RegexTrie()

Méthodes publiques

void clear()
V put(V value, String... regexen)

Cette méthode d'assistance prend une liste d'expressions régulières sous forme de Strings et les compile à la volée avant d'ajouter les Patterns suivants au trie.

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 de Strings fournie à une séquence de Patterns stockée dans le trie.

V retrieve(List<List<String>> captures, String... strings)

Récupérez une valeur du trie en faisant correspondre la séquence de Strings fournie à une séquence de Patterns stockée dans le trie.

String toString()

Constructeurs publics

RegexTrie

public RegexTrie ()

Méthodes publiques

effacer

public void clear ()

put

public V put (V value, 
                String... regexen)

Cette méthode d'assistance prend une liste d'expressions régulières sous forme de Strings et les compile à la volée avant d'ajouter les Patterns suivants au trie.

Paramètres
value V : valeur à définir

regexen String : séquence d'expressions régulières (sous forme de Strings) qui doivent correspondre séquentiellement pour récupérer la value associée. Chaque chaîne sera compilée en tant que Pattern avant d'appeler put(Object,Pattern...).

Renvoie
V

put

public V put (V value, 
                Pattern... patterns)

Ajoutez une entrée au trie.

Paramètres
value V : valeur à définir

patterns Pattern : séquence de Patterns qui doivent correspondre séquentiellement pour récupérer la value associée

Renvoie
V

récupération

public V retrieve (String... strings)

Récupérez une valeur du trie en faisant correspondre la séquence de Strings fournie à une séquence de Patterns stockée dans le trie.

Paramètres
strings String: séquence de Strings à faire correspondre

Renvoie
V La valeur associée, ou null si aucune valeur n'a été trouvée

récupération

public V retrieve (List<List<String>> captures, 
                String... strings)

Récupérez une valeur du trie en faisant correspondre la séquence de Strings fournie à une séquence de Patterns stockée dans le trie. Cette version de la méthode renvoie également un List de groupes de capture pour chaque Pattern qui a été mis en correspondance.

Chaque entrée de la liste externe correspond à un niveau de Pattern dans le trie. Pour chaque niveau, la liste des groupes de capture est stockée. S'il n'y a pas de captures pour un niveau particulier, une liste vide est stockée.

Notez que captures sera 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étera toujours les groupes de capture de la correspondance partielle.

Paramètres
captures List : List<List<String>> via laquelle les groupes de capture seront renvoyés.

strings String: séquence de Strings à faire correspondre

Renvoie
V La valeur associée, ou null si aucune valeur n'a été trouvée

toString

public String toString ()

Renvoie
String