RegexTrie

public class RegexTrie
extends Object

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


RegexTrie to drzewo trie, w którym każdy przechowywany segment klucza jest wyrażeniem regularnymPattern. Dlatego pełny przechowywany klucz jest List&lt;Pattern&gt;, a nie List&lt;String&gt;, jak w standardowym drzewie trie. Pamiętaj, że metoda retrieve(String...) będzie dopasowywana punktowo do Pattern, a nie sprawdzana pod kątem równości punktowej, jak w przypadku standardowego drzewa trie. Z tego powodu może działać słabo w przypadku dużych zbiorów danych.

Pattern można też użyć wpisu null jako symbolu wieloznacznego. Jeśli napotkasz znak null, wszystkie kolejne wpisy w sekwencji zostaną zignorowane. Gdy kod pobierania napotka znak null Pattern, najpierw poczeka, aby sprawdzić, czy do sekwencji pasuje bardziej szczegółowy wpis. Jeśli tak się stanie, bardziej szczegółowy wpis zostanie przetworzony, nawet jeśli później nie będzie pasować.

Jeśli nie ma bardziej szczegółowego dopasowania, dopasowanie z wieloznacznym symbolem doda wszystkie pozostałe Strings do listy przechwyceń (jeśli jest włączona) i zwróci wartość powiązaną z wieloznacznym symbolem.

Krótki przykład działania funkcji symbolu wieloznacznego:

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

Podsumowanie

Konstruktory publiczne

RegexTrie()

Metody publiczne

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

Ta metoda pomocnicza przyjmuje listę wyrażeń regularnych jako Strings i kompiluje je na bieżąco przed dodaniem kolejnych Patterns do drzewa trie.

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

Dodawanie wpisu do drzewa trie.

V retrieve(String... strings)

Pobierz wartość z drzewa trie, dopasowując podaną sekwencję String do sekwencji Pattern przechowywanej w drzewie trie.

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

Pobierz wartość z drzewa trie, dopasowując podaną sekwencję String do sekwencji Pattern przechowywanej w drzewie trie.

String toString()

Konstruktory publiczne

RegexTrie

public RegexTrie ()

Metody publiczne

wyczyść

public void clear ()

put

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

Ta metoda pomocnicza przyjmuje listę wyrażeń regularnych jako Strings i kompiluje je na bieżąco przed dodaniem kolejnych Patterns do drzewa trie.

Parametry
value V: wartość do ustawienia.

regexen String: sekwencja wyrażeń regularnych (jako String), które muszą być dopasowane sekwencyjnie, aby pobrać powiązany value. Każdy ciąg znaków zostanie skompilowany jako Pattern przed wywołaniem put(Object,Pattern...).

Zwraca
V

put

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

Dodawanie wpisu do drzewa trie.

Parametry
value V: wartość do ustawienia.

patterns Pattern: sekwencja znaków Pattern, które muszą być dopasowane sekwencyjnie, aby pobrać powiązany znak value.

Zwraca
V

odnajdź

public V retrieve (String... strings)

Pobierz wartość z drzewa trie, dopasowując podaną sekwencję String do sekwencji Pattern przechowywanej w drzewie trie.

Parametry
strings String: sekwencja String do dopasowania

Zwraca
V Powiązana wartość lub null, jeśli nie znaleziono żadnej wartości.

odnajdź

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

Pobierz wartość z drzewa trie, dopasowując podaną sekwencję String do sekwencji Pattern przechowywanej w drzewie trie. Ta wersja metody zwraca też List grup przechwytywania dla każdego dopasowanego Pattern.

Każdy wpis na liście zewnętrznej odpowiada jednemu poziomowi w drzewie trie.Pattern Dla każdego poziomu będzie przechowywana lista grup przechwytywania. Jeśli na danym poziomie nie było żadnych przechwyceń, zostanie zapisana pusta lista.

Pamiętaj, że captures zostanie List.clear() przed rozpoczęciem pobierania. Jeśli pobieranie nie powiedzie się po częściowej sekwencji dopasowań, captures nadal będzie odzwierciedlać grupy przechwytywania z częściowego dopasowania.

Parametry
captures List: List<List<String>>, przez który będą zwracane grupy przechwytywania.

strings String: sekwencja String do dopasowania

Zwraca
V Powiązana wartość lub null, jeśli nie znaleziono żadnej wartości.

toString

public String toString ()

Zwraca
String