RegexTrie
public
class
RegexTrie
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie هي شجرة بحث ثلاثية حيث يكون كل جزء Pattern. وبالتالي، فإنّ المفتاح List<Pattern> وليس List<String> كما هو الحال في شجرة البحث الثلاثية القياسية. يُرجى العِلم أنّ طريقة retrieve(String...) ستتم مطابقتها نقطة بنقطة مع Pattern، بدلاً من التحقّق من التساوي نقطة بنقطة كما هو الحال في شجرة البحث الثلاثية العادية. لهذا السبب، قد يكون أداؤها ضعيفًا مع مجموعات البيانات الكبيرة.
يمكن أيضًا استخدام إدخال 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 [[], []]
ملخّص
طُرق وضع التصميم العامة | |
|---|---|
RegexTrie()
|
|
الإجراءات العامة | |
|---|---|
void
|
clear()
|
V
|
put(V value, String... regexen)
تأخذ طريقة المساعدة هذه قائمة بالتعبيرات العادية كـ |
V
|
put(V value, Pattern... patterns)
أضِف إدخالاً إلى شجرة البحث الثلاثية. |
V
|
retrieve(String... strings)
استرجاع قيمة من شجرة البحث الثلاثية عن طريق مطابقة تسلسل |
V
|
retrieve(List<List<String>> captures, String... strings)
استرجاع قيمة من شجرة البحث الثلاثية عن طريق مطابقة تسلسل |
String
|
toString()
|
طُرق وضع التصميم العامة
RegexTrie
public RegexTrie ()
الإجراءات العامة
محو
public void clear ()
put
public V put (V value,
String... regexen)تأخذ طريقة المساعدة هذه قائمة بالتعبيرات العادية كـ Strings وتجمعها
أثناء التنفيذ قبل إضافة Patterns اللاحقة إلى شجرة البحث
| المعلَمات | |
|---|---|
value |
V: القيمة المطلوب ضبطها |
regexen |
String: تسلسل التعابير العادية (مثل String) التي يجب أن تتطابق بالتسلسل لاسترداد value المرتبط. سيتم تجميع كل سلسلة على شكل Pattern قبل استدعاء put(Object,Pattern...). |
| المرتجعات | |
|---|---|
V |
|
put
public V put (V value,
Pattern... patterns)أضِف إدخالاً إلى شجرة البحث الثلاثية.
| المعلَمات | |
|---|---|
value |
V: القيمة المطلوب ضبطها |
patterns |
Pattern: تسلسل Pattern يجب أن يتطابق بشكل متسلسل مع
استرداد value المرتبط |
| المرتجعات | |
|---|---|
V |
|
الاسترداد
public V retrieve (String... strings)
استرجاع قيمة من شجرة البحث الثلاثية عن طريق مطابقة تسلسل String المقدَّم مع تسلسل Pattern مخزَّن في شجرة البحث الثلاثية
| المعلَمات | |
|---|---|
strings |
String: تسلسل من Strings للمطابقة |
| المرتجعات | |
|---|---|
V |
القيمة المرتبطة أو null إذا لم يتم العثور على أي قيمة |
الاسترداد
public V retrieve (List<List<String>> captures,
String... strings)استرجاع قيمة من شجرة البحث الثلاثية عن طريق مطابقة تسلسل String المقدَّم مع تسلسل Pattern مخزَّن في شجرة البحث الثلاثية تعرض هذه النسخة من الطريقة أيضًا List لمجموعات الالتقاط لكل Pattern تمت مطابقته.
يتطابق كل إدخال في القائمة الخارجية مع مستوى واحد من Pattern في شجرة البحث الثلاثية.
سيتم تخزين قائمة مجموعات الالتقاط لكل مستوى. إذا لم تكن هناك عمليات تسجيل
لمستوى معيّن، سيتم تخزين قائمة فارغة.
يُرجى العِلم أنّه سيتم List.clear() captures قبل بدء عملية الاسترداد.
بالإضافة إلى ذلك، إذا تعذّر الاسترجاع بعد تسلسل جزئي من التطابقات، سيظل captures يعرض مجموعات الالتقاط من التطابق الجزئي.
| المعلَمات | |
|---|---|
captures |
List: List<List<String>> سيتم عرض مجموعات الالتقاط من خلالها. |
strings |
String: تسلسل من Strings للمطابقة |
| المرتجعات | |
|---|---|
V |
القيمة المرتبطة أو null إذا لم يتم العثور على أي قيمة |
toString
public String toString ()
| المرتجعات | |
|---|---|
String |
|