RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie<V> |
O RegexTrie é um trie onde cada armazenado segmento da chave é um regex ERROR(/Pattern)
. Assim, o pleno armazenado é uma chave List<Pattern>
em vez de uma List<String>
como em uma tentativa padrão. Observe que o método retrieve(String)
será comparado pontualmente com o Pattern
s, em vez de verificado quanto à igualdade pontual como em uma trie padrão. Por causa disso, pode ter um desempenho ruim para grandes conjuntos de dados.
Pode-se também usar uma entrada
null
na sequência
Pattern
para servir como curinga. Se um
null
for encontrado, todas as entradas subseqüentes na sequência serão ignoradas. Quando o código de recuperação encontra um
Pattern
null
, ele primeiro espera para ver se uma entrada mais específica corresponde à sequência. Se houver, essa entrada mais específica continuará, mesmo que posteriormente não corresponda.
Se nenhuma entrada mais específica corresponder, a correspondência curinga adicionará todas as
String
s restantes à lista de capturas (se habilitada) e retornará o valor associado ao curinga.
Uma pequena amostra da funcionalidade 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
Métodos públicos |
---|
void | clear () |
V | put (V value, Pattern... patterns) Adicione uma entrada ao trie. |
V | retrieve (String... strings) Obtenha um valor do trie, combinando a sequência fornecida de ERROR(/String) s com uma sequência de ERROR(/Pattern) s armazenada no trie. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Obtenha um valor do trie, combinando a sequência fornecida de ERROR(/String) s com uma sequência de ERROR(/Pattern) s armazenada no trie. |
String | toString () |
Construtores públicos
RegexTrie
public RegexTrie ()
Métodos públicos
claro
public void clear ()
colocar
public V put (V value,
Pattern... patterns)
Adicione uma entrada ao trie.
Parâmetros |
---|
value | V : O valor a definir |
patterns | Pattern : a sequência de ERROR(/Pattern) s que deve ser correspondida sequencialmente para recuperar o value associado |
recuperar
public V retrieve (String... strings)
Obtenha um valor do trie, combinando a sequência fornecida de ERROR(/String)
s com uma sequência de ERROR(/Pattern)
s armazenada no trie.
Parâmetros |
---|
strings | String : Uma sequência de ERROR(/String) s para corresponder |
devoluções |
---|
V | O valor associado ou null se nenhum valor foi encontrado |
recuperar
public V retrieve ( captures,
String... strings)
Obtenha um valor do trie, combinando a sequência fornecida de ERROR(/String)
s com uma sequência de ERROR(/Pattern)
s armazenada no trie. Esta 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 determinado nível, uma lista vazia será armazenada.
Observe que
captures
serão
ERROR(/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 refletirão os grupos de captura da correspondência parcial.
Parâmetros |
---|
captures | : Uma List<List<String>> por meio da qual os grupos de captura serão retornados. |
strings | String : Uma sequência de ERROR(/String) s para corresponder |
devoluções |
---|
V | O valor associado ou null se nenhum valor foi encontrado |
para sequenciar
public String toString ()