RegexTrie

public class RegexTrie
extends Object

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


RegexTrie は、キーの各保存済みセグメントが正規表現 Pattern であるトライです。したがって、完全な保存済みキーは、標準のトライのように List&lt;String&gt; ではなく List&lt;Pattern&gt; です。retrieve(String...) メソッドは、標準のトライ木のようにポイントワイズの等価性をチェックするのではなく、Pattern とポイントワイズで照合されることに注意してください。そのため、大規模なデータセットではパフォーマンスが低下する可能性があります。

Pattern シーケンスで null エントリをワイルドカードとして使用することもできます。null が検出されると、シーケンス内の後続のエントリはすべて無視されます。取得コードが null Pattern を検出すると、まず、より具体的なエントリがシーケンスと一致するかどうかを確認します。一致するものがある場合、そのより具体的なエントリが処理されます。たとえ、その後一致しなかったとしても処理されます。

より具体的なエントリが一致しない場合、ワイルドカード照合により、残りの String がすべてキャプチャのリストに追加され(有効になっている場合)、ワイルドカードに関連付けられた値が返されます。

ワイルドカード機能の簡単な例を次に示します。

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

概要

パブリック コンストラクタ

RegexTrie()

パブリック メソッド

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

このヘルパー メソッドは、正規表現のリストを String として受け取り、それらをオンザフライでコンパイルしてから、後続の Pattern をトライに追加します。

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

トライにエントリを追加します。

V retrieve(String... strings)

指定された String のシーケンスをトライに保存されている Pattern のシーケンスと照合して、トライから値を取得します。

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

指定された String のシーケンスをトライに保存されている Pattern のシーケンスと照合して、トライから値を取得します。

String toString()

パブリック コンストラクタ

RegexTrie

public RegexTrie ()

パブリック メソッド

消去

public void clear ()

put

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

このヘルパー メソッドは、正規表現のリストを String として受け取り、それらをオンザフライでコンパイルしてから、後続の Pattern をトライに追加します。

パラメータ
value V: 設定する値

regexen String: 関連付けられた value を取得するために順番に照合する必要がある正規表現のシーケンス(String として)。各 String は、put(Object,Pattern...) を呼び出す前に Pattern としてコンパイルされます。

戻り値
V

put

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

トライにエントリを追加します。

パラメータ
value V: 設定する値

patterns Pattern: 関連する value を取得するために順次照合する必要がある Pattern のシーケンス

戻り値
V

取得

public V retrieve (String... strings)

提供された String のシーケンスをトライに保存されている Pattern のシーケンスと照合して、トライから値を取得します。

パラメータ
strings String: 照合する String のシーケンス

戻り値
V 関連付けられた値。値が見つからなかった場合は null

取得

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

提供された String のシーケンスをトライに保存されている Pattern のシーケンスと照合して、トライから値を取得します。このバージョンのメソッドは、一致した各 Pattern のキャプチャ グループの List も返します。

外側の List の各エントリは、トライの Pattern の 1 つのレベルに対応します。各レベルで、キャプチャ グループのリストが保存されます。特定のレベルのキャプチャがない場合は、空のリストが保存されます。

取得が開始される前に capturesList.clear() されることに注意してください。また、部分一致のシーケンスの後に取得が失敗した場合でも、captures には部分一致のキャプチャ グループが反映されます。

パラメータ
captures List: キャプチャ グループが返される List<List<String>>

strings String: 照合する String のシーケンス

戻り値
V 関連付けられた値。値が見つからなかった場合は null

toString

public String toString ()

戻り値
String