RegexTrie

public class RegexTrie
extends Object

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


El RegexTrie es un trie en el que cada segmento almacenado de la clave es una expresión regular Pattern. Por lo tanto, la clave almacenada completa es un List&lt;Pattern&gt; en lugar de un List&lt;String&gt;, como en un trie estándar. Ten en cuenta que el método retrieve(String...) se correlacionará punto a punto con los Pattern, en lugar de verificarse la igualdad punto a punto como en un trie estándar. Por este motivo, es posible que su rendimiento sea bajo para conjuntos de datos grandes.

También se puede usar una entrada null en la secuencia Pattern para que funcione como comodín. Si se encuentra un null, se ignorarán todas las entradas posteriores de la secuencia. Cuando el código de recuperación encuentra un null Pattern, primero espera para ver si una entrada más específica coincide con la secuencia. Si se encuentra una, se usará esa entrada más específica, incluso si luego no coincide.

Si no coincide ninguna entrada más específica, la coincidencia de comodines agregará todos los String restantes a la lista de capturas (si está habilitada) y devolverá el valor asociado con el comodín.

A continuación, se muestra un breve ejemplo de la funcionalidad de comodín:

 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 [[], []]
 

Resumen

Constructores públicos

RegexTrie()

Métodos públicos

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

Este método auxiliar toma una lista de expresiones regulares como Strings y las compila sobre la marcha antes de agregar los Patterns posteriores al trie.

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

Agrega una entrada al trie.

V retrieve(String... strings)

Recupera un valor del trie haciendo coincidir la secuencia proporcionada de Strings con una secuencia de Patterns almacenada en el trie.

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

Recupera un valor del trie haciendo coincidir la secuencia proporcionada de Strings con una secuencia de Patterns almacenada en el trie.

String toString()

Constructores públicos

RegexTrie

public RegexTrie ()

Métodos públicos

borrar

public void clear ()

put

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

Este método auxiliar toma una lista de expresiones regulares como Strings y las compila sobre la marcha antes de agregar los Patterns posteriores al trie.

Parámetros
value V: Es el valor que se establecerá.

regexen String: Es la secuencia de expresiones regulares (como String) que deben coincidir de forma secuencial para recuperar el value asociado. Cada String se compilará como un Pattern antes de invocar put(Object,Pattern...).

Muestra
V

put

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

Agrega una entrada al trie.

Parámetros
value V: Es el valor que se establecerá.

patterns Pattern: Es la secuencia de Pattern que se debe hacer coincidir de forma secuencial para recuperar el value asociado.

Muestra
V

recuperar

public V retrieve (String... strings)

Recupera un valor del trie haciendo coincidir la secuencia proporcionada de Strings con una secuencia de Patterns almacenada en el trie.

Parámetros
strings String: Una secuencia de String para hacer coincidir

Muestra
V El valor asociado o null si no se encontró ningún valor

recuperar

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

Recupera un valor del trie haciendo coincidir la secuencia proporcionada de Strings con una secuencia de Patterns almacenada en el trie. Esta versión del método también devuelve un List de grupos de captura para cada Pattern que coincidió.

Cada entrada de la lista externa corresponde a un nivel de Pattern en el trie. Para cada nivel, se almacenará la lista de grupos de captura. Si no hubo capturas para un nivel en particular, se almacenará una lista vacía.

Ten en cuenta que captures se List.clear() antes de que comience la recuperación. Además, si la recuperación falla después de una secuencia parcial de coincidencias, captures seguirá reflejando los grupos de captura de la coincidencia parcial.

Parámetros
captures List: Es un List<List<String>> a través del cual se devolverán los grupos de captura.

strings String: Una secuencia de String para hacer coincidir

Muestra
V El valor asociado o null si no se encontró ningún valor

toString

public String toString ()

Muestra
String