RegexTrie
public
class
RegexTrie
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
A RegexTrie é uma trie em que cada segmento Pattern. Assim, a chave List<Pattern> em vez
de uma List<String>, 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 |
V
|
put(V value, Pattern... patterns)
Adiciona uma entrada à trie. |
V
|
retrieve(String... strings)
Busca um valor na trie, correspondendo a sequência de |
V
|
retrieve(List<List<String>> captures, String... strings)
Busca um valor na trie, correspondendo a sequência de |
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 |
|