示例#1
0
文件: Nodes.py 项目: ximarx/icse-ie
    def leftActivation(self, tok, wme):

        #assert isinstance(wme, WME), \
        #    "wme non e' un WME"
        
        # se il token viene da un dummyjoinnode
        # devo provvedere a convertirlo?
        new_token = Token(self, tok, wme)
        
        #self._items.insert(0, new_token)
        self._items[new_token] = new_token
        
        for w in self._amem.get_items():
            if self._perform_tests(w, new_token):
                njr = NegativeJoinResult(new_token, w)
                
                new_token.add_njresult(njr)
                w.add_njresult(njr)
                
        # attiva solo se non ci sono match (e' un nodo negativo)
        if new_token.count_njresults() == 0 :
            for child in self._children:
                assert isinstance(child, ReteNode), \
                    "child non e' un ReteNode"
                    
                # attenzione, la leftActivation viene fornita senza la WME
                # quindi solo i join node sono preparati a riceverla?????
                # TODO refactoring
                #print child
                child.leftActivation(new_token, None)