RegexTrie

public class RegexTrie
extends Object

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


O RegexTrie é uma trie em que cada segmento armazenado da chave é um regex ERROR(/Pattern). Assim, a chave armazenada completa é um List&lt;Pattern&gt;, e não um List&lt;String&gt;, como em um trie padrão. O método retrieve(String) será comparado ponto a ponto com os Patterns, em vez de ser verificado para igualdade ponto a ponto, como em um trie padrão. Por isso, ela pode ter um desempenho ruim em grandes conjuntos de dados.

Também é possível usar uma entrada null na sequência Pattern para servir como 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 Pattern null, ele primeiro espera para saber se uma entrada mais específica corresponde à sequência. Se houver, essa entrada mais específica vai ser processada, mesmo que não corresponda à correspondência.

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

Um exemplo curto da funcionalidade de 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, Pattern... patterns)

Adicione uma entrada à trie.

V retrieve(String... strings)

Extrair um valor do trie, correspondendo a sequência fornecida de Strings a uma sequência de ERROR(/Pattern)s armazenada no trie.

V retrieve( captures, String... strings)

Extrair um valor do trie, correspondendo a sequência fornecida de Strings a uma sequência de ERROR(/Pattern)s armazenada no trie.

String toString()

Construtores públicos

RegexTrie

public RegexTrie ()

Métodos públicos

limpar

public void clear ()

put

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

Adicione uma entrada à trie.

Parâmetros
value V: o valor a ser definido

patterns Pattern: a sequência de ERROR(/Pattern)s que precisam ser correspondidas sequencialmente para recuperar o value associado

Retorna
V

recuperar

public V retrieve (String... strings)

Extrair um valor do trie, correspondendo a sequência fornecida de Strings a uma sequência de ERROR(/Pattern)s armazenada no trie.

Parâmetros
strings String: uma sequência de Strings para correspondência

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

recuperar

public V retrieve ( captures, 
                String... strings)

Busque um valor da trie, combinando a sequência fornecida de Strings com uma sequência de ERROR(/Pattern)s armazenada na trie. Essa versão do método também retorna um ERROR(/List) de grupos de captura para cada ERROR(/Pattern) que foi 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.

O captures será ERROR(/List#clear()) 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 : uma List<List<String>> pela qual 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