TSMultiTree.st
author Stefan Vogel <sv@exept.de>
Fri, 22 Apr 2016 09:24:39 +0200
changeset 3811 b820b2fcda5e
parent 3667 f1a59ae2e064
child 4120 12a40385a06b
permissions -rw-r--r--
#REFACTORING by stefan class: TSMultiTree added: #treeNodeClass
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic2' }"
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
3667
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
     3
"{ NameSpace: Smalltalk }"
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
     4
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TSTree subclass:#TSMultiTree
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Collections-Ordered-Trees'
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!TSMultiTree class methodsFor:'documentation'!
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
documentation
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"
3667
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    16
    A bunch of collection classes that are useful for building large indices of things. 
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    17
    It's especially geared towards people using OODBs like GOODS, but can be used it in the image too: 
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    18
    the BTree class is great for when you need to select numeric keys by range, 
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    19
    and TSTree makes a solid basis for full-text search. 
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    20
    TreeSet has an interesting optimized #intersection: that lets you compare two collections without 
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    21
    looking at every item of either. 
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    22
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    TSMultiTree is pretty much like TSTree but it can store multiple
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    (different) values per key. Uses equality compare (=) to search for 
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    the occurrence.
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    [author:]
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
        Jan Vrany <jan.vrany@fit.cvut.cz>
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    [instance variables:]
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    [class variables:]
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    [see also:]
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
"
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
! !
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
3811
b820b2fcda5e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3667
diff changeset
    39
!TSMultiTree class methodsFor:'queries'!
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
3811
b820b2fcda5e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3667
diff changeset
    41
treeNodeClass
b820b2fcda5e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3667
diff changeset
    42
    ^ TSMultiTreeNode
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
! !
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
!TSMultiTree class methodsFor:'documentation'!
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
version
3667
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    48
    ^ '$Header$'
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
!
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
version_CVS
3667
f1a59ae2e064 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3250
diff changeset
    52
    ^ '$Header$'
3250
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
! !
e1ae9376992c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54