RegexTrie

public class RegexTrie
extends Object

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


Drzewo RegexTrie to drzewo, w którym każdy zapisany segment klucza to wyrażenie regularne ERROR(/Pattern). Dlatego pełny zapisany klucz to List&lt;Pattern&gt;, a nie List&lt;String&gt;, jak w standardowym drzewie 3-wartościowym. Pamiętaj, że metoda retrieve(String) będzie dopasowywana punktowo do Pattern, a nie sprawdzana pod kątem równości punktowej jak w standardowym drzewie Trie. Z tego powodu może ona działać nieefektywnie w przypadku dużych zbiorów danych.

Jako symbolu wieloznacznego można też użyć wpisu null w sekwencji Pattern. Jeśli napotkasz null, wszystkie kolejne wpisy w sekwencji zostaną zignorowane. Gdy kod odzyskiwania napotka element null Pattern, najpierw sprawdzi, czy bardziej szczegółowy wpis pasuje do sekwencji. Jeśli tak, zostanie użyty bardziej szczegółowy wpis, nawet jeśli nie będzie on pasować do docelowego.

Jeśli nie pasuje bardziej konkretny wpis, dopasowanie z symbolem wieloznacznym spowoduje dodanie wszystkich pozostałych elementów String do listy zapisów (jeśli jest włączona) i zwrócenie wartości powiązanej z symbolem wieloznacznym.

Krótki przykład funkcji symboli wieloznacznych:

 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, Pattern... patterns)

Dodaj wpis do drzewa Trie.

V retrieve(String... strings)

Pobierz wartość z trie, dopasowując podawaną sekwencję String do sekwencji ERROR(/Pattern) przechowywanej w trie.

V retrieve( captures, String... strings)

Pobierz wartość z trie, dopasowując podawaną sekwencję String do sekwencji ERROR(/Pattern) przechowywanej w trie.

String toString()

Konstruktory publiczne

RegexTrie

public RegexTrie ()

Metody publiczne

wyczyść

public void clear ()

Połącz

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

Dodaj wpis do drzewa 3-wartościowego.

Parametry
value V: wartość do ustawienia

patterns Pattern: sekwencja wartości ERROR(/Pattern), które muszą być po kolei dopasowywane, aby pobrać powiązany element value

Zwroty
V

odzyskaj

public V retrieve (String... strings)

Pobierz wartość z trie, dopasowując podawaną sekwencję String do sekwencji ERROR(/Pattern) przechowywanej w trie.

Parametry
strings String: sekwencja wartości String do dopasowania

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

odzyskaj

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

Pobierz wartość z trie, dopasowując podawaną sekwencję String do sekwencji ERROR(/Pattern) przechowywanej w trie. Ta wersja metody zwraca również ERROR(/List) grup przechwytywania dla każdego dopasowanego ERROR(/Pattern).

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

Pamiętaj, że wartość captures zostanie ERROR(/List#clear())edytowana przed rozpoczęciem pobierania. Ponadto jeśli pobieranie nie uda się po częściowej sekwencji dopasowań, captures nadal będzie odzwierciedlać grupy przechwytywania z dopasowania częściowego.

Parametry
captures : pole List<List<String>>, za pomocą którego będą zwracane grupy przechwytywania.

strings String: sekwencja wartości String do dopasowania

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

toString

public String toString ()

Zwroty
String