def __FindInTree(self, key: str, lang: 'MorphLang') -> typing.List['Termin']: if (key is None): return None nod = self.__getRoot(lang, ((lang is None or lang.is_undefined)) and LanguageHelper.isLatin(key)) i = 0 while i < len(key): ch = ord(key[i]) if (nod.children is None): return None wrapnn616 = RefOutArgWrapper(None) inoutres617 = Utils.tryGetValue(nod.children, ch, wrapnn616) nn = wrapnn616.value if (not inoutres617): return None nod = nn i += 1 return nod.termins
def __RemoveFromTree(self, key: str, t: 'Termin') -> None: if (key is None): return nod = self.__getRoot( t.lang, t.lang.is_undefined and LanguageHelper.isLatin(key)) i = 0 while i < len(key): ch = ord(key[i]) if (nod.children is None): return wrapnn614 = RefOutArgWrapper(None) inoutres615 = Utils.tryGetValue(nod.children, ch, wrapnn614) nn = wrapnn614.value if (not inoutres615): return nod = nn i += 1 if (nod.termins is None): return if (t in nod.termins): nod.termins.remove(t)
def __AddToTree(self, key: str, t: 'Termin') -> None: if (key is None): return nod = self.__getRoot( t.lang, t.lang.is_undefined and LanguageHelper.isLatin(key)) i = 0 while i < len(key): ch = ord(key[i]) if (nod.children is None): nod.children = dict() wrapnn612 = RefOutArgWrapper(None) inoutres613 = Utils.tryGetValue(nod.children, ch, wrapnn612) nn = wrapnn612.value if (not inoutres613): nn = TerminCollection.CharNode() nod.children[ch] = nn nod = nn i += 1 if (nod.termins is None): nod.termins = list() if (not t in nod.termins): nod.termins.append(t)