RegexTrie

public class RegexTrie
extends Object

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


‫RegexTrie הוא עץ חיפוש שבו כל מקטע שמאוחסן במפתח הוא ביטוי רגולרי Pattern. לכן, המפתח שמאוחסן במלואו הוא List&lt;Pattern&gt; ולא List&lt;String&gt; כמו במבנה נתונים מסוג trie רגיל. שימו לב שהשיטה retrieve(String...) תתאים לנקודות ב-Patterns, ולא תיבדק לשוויון בין נקודות כמו ב-trie רגיל. לכן, יכול להיות שהביצועים שלה יהיו נמוכים במערכי נתונים גדולים.

אפשר גם להשתמש בערך null ברצף Pattern כתו כללי. אם המערכת נתקלת ב-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 [[], []]
 

סיכום

‫constructors ציבוריים

RegexTrie()

‫methods ציבוריים

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

שיטת העזר הזו מקבלת רשימה של ביטויים רגולריים כ-Strings ומקמפלת אותם תוך כדי הפעולה לפני הוספת Patterns הבאים לעץ ה-trie.

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

מוסיפים רשומה ל-trie.

V retrieve(String... strings)

שליפת ערך מהעץ, על ידי התאמת הרצף שסופק של String לרצף של Pattern שמאוחסן בעץ.

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

שליפת ערך מהעץ, על ידי התאמת הרצף שסופק של String לרצף של Pattern שמאוחסן בעץ.

String toString()

‫constructors ציבוריים

RegexTrie

public RegexTrie ()

‫methods ציבוריים

מחיקה

public void clear ()

put

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

שיטת העזר הזו מקבלת רשימה של ביטויים רגולריים כ-Strings ומקמפלת אותם תוך כדי הפעולה לפני הוספת Patterns הבאים לעץ ה-trie.

פרמטרים
value V: הערך שרוצים להגדיר

regexen String: רצף של ביטויים רגולריים (כערכי String) שצריך להתאים להם ברצף כדי לאחזר את ערך value המשויך. כל מחרוזת תעבור קומפילציה כ-Pattern לפני הפעלת put(Object,Pattern...).

החזרות
V

put

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

מוסיפים רשומה ל-trie.

פרמטרים
value V: הערך שרוצים להגדיר

patterns Pattern: הרצף של Pattern שצריך להתאים ברצף כדי לאחזר את value המשויך

החזרות
V

אחזור

public V retrieve (String... strings)

שליפת ערך מהעץ, על ידי התאמת הרצף שסופק של String לרצף של Pattern שמאוחסן בעץ.

פרמטרים
strings String: רצף של String להתאמה

החזרות
V הערך המשויך, או null אם לא נמצא ערך

אחזור

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

שליפת ערך מהעץ, על ידי התאמת הרצף שסופק של String לרצף של Pattern שמאוחסן בעץ. הגרסה הזו של השיטה מחזירה גם List של קבוצות לכידה לכל Pattern שהייתה התאמה שלו.

כל רשומה ברשימה החיצונית תואמת לרמה אחת של Pattern בעץ החיפוש. הרשימה של קבוצות הלכידה תישמר לכל רמה. אם לא היו צילומים ברמה מסוימת, תישמר רשימה ריקה.

שימו לב: הפונקציה captures תופעל לפני תחילת השליפה.List.clear() בנוסף, אם השליפה נכשלת אחרי רצף חלקי של התאמות, captures עדיין ישקף את הקבוצות לחילוץ מההתאמה החלקית.

פרמטרים
captures List: מחרוזת List<List<String>> שדרכה יוחזרו קבוצות הלכידה.

strings String: רצף של String להתאמה

החזרות
V הערך המשויך, או null אם לא נמצא ערך

toString

public String toString ()

החזרות
String