Grafoscopio/repository/Grafoscopio/GrafoscopioRootNode.class.st

69 lines
1.4 KiB
Smalltalk

"
This is a root node. It represents a document.
"
Class {
#name : #GrafoscopioRootNode,
#superclass : #GrafoscopioAbstractNode,
#instVars : [
'children'
],
#category : 'Grafoscopio-Model'
}
{ #category : #accessing }
GrafoscopioRootNode >> acceptVisitor: aGrafoscopioVisitor [
aGrafoscopioVisitor visitRootNode: self.
]
{ #category : #accessing }
GrafoscopioRootNode >> acceptsChildsOfClass: aClass [
^ {GrafoscopioUnitNode} includes: aClass
]
{ #category : #accessing }
GrafoscopioRootNode >> addAtBeginningChild: aBlock ofClass: aClass [
(self acceptsChildsOfClass: aClass)
ifTrue: [ | child |
child := aBlock value.
child parent: self.
self children addFirst: child ]
]
{ #category : #accessing }
GrafoscopioRootNode >> addChild: aBlock ofClass: aClass [
(self acceptsChildsOfClass: aClass)
ifTrue: [ | child |
child := aBlock value.
child parent: self.
self children add: child ]
]
{ #category : #'as yet unclassified' }
GrafoscopioRootNode >> children [
^ children
]
{ #category : #accessing }
GrafoscopioRootNode >> initialize [
super initialize.
children := SortedCollection new
sortBlock: [ :a :b | a order < b order ];
yourself
]
{ #category : #accessing }
GrafoscopioRootNode >> level [
^ 1
]
{ #category : #accessing }
GrafoscopioRootNode >> text [
^ name
]
{ #category : #accessing }
GrafoscopioRootNode >> text: aText [
name := aText
]