Class: OMF::Rete::Store::Alpha::AlphaInnerElement

Inherits:
AlphaElement
  • Object
show all
Defined in:
lib/omf_rete/store/alpha/alpha_inner_element.rb

Instance Method Summary collapse

Methods inherited from AlphaElement

create

Constructor Details

#initialize(level, length, store) ⇒ AlphaInnerElement

Returns a new instance of AlphaInnerElement.



7
8
9
10
11
12
13
14
# File 'lib/omf_rete/store/alpha/alpha_inner_element.rb', line 7

def initialize(level, length, store)
  super(level, store)
  @length = length
  @children = {}
  if (level < length)
    @wildChild = AlphaElement.create(level + 1, length, store)
  end
end

Instance Method Details

#addTuple(tarray) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/omf_rete/store/alpha/alpha_inner_element.rb', line 28

def addTuple(tarray)
  el = tarray[@level]
  if (child = @children[el])
    child.addTuple(tarray)
  end
  @wildChild.addTuple(tarray) if (@wildChild)
end

#registerTSet(tset, pattern) ⇒ Object

see Store



18
19
20
21
22
23
24
25
26
# File 'lib/omf_rete/store/alpha/alpha_inner_element.rb', line 18

def registerTSet(tset, pattern)
  pitem = pattern[@level]
  if (pitem)  # not nil
    child = (@children[pitem] ||= AlphaElement.create(@level + 1, @length, @store))
    child.registerTSet(tset, pattern)
  else # wildcard
    @wildChild.registerTSet(tset, pattern)
  end
end

#removeTuple(tarray) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/omf_rete/store/alpha/alpha_inner_element.rb', line 36

def removeTuple(tarray)
  el = tarray[@level]
  if (child = @children[el])
    child.removeTuple(tarray)
  end
  @wildChild.removeTuple(tarray) if (@wildChild)
end