RegexTrie

public class RegexTrie
extends Object

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


A RegexTrie é uma trie em que cada segmento armazenado da chave é um regex Pattern. Assim, a chave armazenada completa é uma List&lt;Pattern&gt; em vez de uma List&lt;String&gt;, como em uma trie padrão. Observe que o método retrieve(String...) será correspondido ponto a ponto aos Patterns, em vez de ter a igualdade ponto a ponto verificada, como em uma trie padrão. Por isso, ele pode ter um desempenho ruim em conjuntos de dados grandes.

Também é possível usar uma entrada null na sequência Pattern como um caractere curinga. Se um null for encontrado, todas as entradas subsequentes na sequência serão ignoradas. Quando o código de recuperação encontra um null Pattern, ele primeiro espera para ver se uma entrada mais específica corresponde à sequência. Se houver, essa entrada mais específica vai continuar, mesmo que falhe na correspondência.

Se nenhuma entrada mais específica corresponder, a correspondência de caractere curinga vai adicionar todas as Strings restantes à lista de capturas (se ativada) e retornar o valor associado ao caractere curinga.

Um pequeno exemplo da funcionalidade de caractere curinga:

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

Resumo

Construtores públicos

RegexTrie()

Métodos públicos

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

Esse método auxiliar recebe uma lista de expressões regulares como Strings e as compila em tempo real antes de adicionar os Patterns subsequentes à trie.

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

Adiciona uma entrada à trie.

V retrieve(String... strings)

Busca um valor na trie, correspondendo a sequência de Strings fornecida a uma sequência de Patterns armazenada na trie.

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

Busca um valor na trie, correspondendo a sequência de Strings fornecida a uma sequência de Patterns armazenada na trie.

String toString()

Construtores públicos

RegexTrie

public RegexTrie ()

Métodos públicos

limpar

public void clear ()

put

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

Esse método auxiliar recebe uma lista de expressões regulares como Strings e as compila em tempo real antes de adicionar os Patterns subsequentes à trie.

Parâmetros
value V: o valor a ser definido

regexen String: a sequência de expressões regulares (como Strings) que precisam ser correspondidas sequencialmente para recuperar o value associado. Cada string será compilada como um Pattern antes de invocar put(Object,Pattern...).

Retorna
V

put

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

Adiciona uma entrada à trie.

Parâmetros
value V: o valor a ser definido

patterns Pattern: a sequência de Patterns que precisam ser correspondidas sequencialmente para recuperar o value associado

Retorna
V

recuperar

public V retrieve (String... strings)

Busca um valor na trie, correspondendo a sequência de Strings fornecida a uma sequência de Patterns armazenada na trie.

Parâmetros
strings String: uma sequência de Strings a serem correspondidas

Retorna
V O valor associado ou null se nenhum valor for encontrado

recuperar

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

Busca um valor na trie, correspondendo a sequência de Strings fornecida a uma sequência de Patterns armazenada na trie. Essa versão do método também retorna um List de grupos de captura para cada Pattern correspondido.

Cada entrada na lista externa corresponde a um nível de Pattern na trie. Para cada nível, a lista de grupos de captura será armazenada. Se não houver capturas para um nível específico, uma lista vazia será armazenada.

Observe que captures será List.clear()ed antes do início da recuperação. Além disso, se a recuperação falhar após uma sequência parcial de correspondências, captures ainda vai refletir os grupos de captura da correspondência parcial.

Parâmetros
captures List: uma List<List<String>> em que os grupos de captura serão retornados.

strings String: uma sequência de Strings a serem correspondidas

Retorna
V O valor associado ou null se nenhum valor for encontrado

toString

public String toString ()

Retorna
String