Grafoscopio/src/Grafoscopio/GrafoscopioLeafNode.class.st

66 lines
1.4 KiB
Smalltalk

"
Leaf node. Any content node is leaf
"
Class {
#name : #GrafoscopioLeafNode,
#superclass : #GrafoscopioAbstractNode,
#instVars : [
'parent'
],
#category : #'Grafoscopio-Model'
}
{ #category : #testing }
GrafoscopioLeafNode class >> isLeaf [
^ true
]
{ #category : #accessing }
GrafoscopioLeafNode >> acceptVisitor: aGrafoscopioVisitor [
aGrafoscopioVisitor visitLeafNode: self.
]
{ #category : #accessing }
GrafoscopioLeafNode >> addAtBeginningChild: aBlock ofClass: aClass [
self error: 'Leaf nodes are abstract. '
]
{ #category : #accessing }
GrafoscopioLeafNode >> addChild: aBlock ofClass: aClass [
self error: 'Leaf nodes are abstract. '
]
{ #category : #accessing }
GrafoscopioLeafNode >> level [
"Returns the level of the node. See the setter message for details"
^ parent ifNil: [ 0 ] ifNotNil: [ 1 + parent level ]
]
{ #category : #'as yet unclassified' }
GrafoscopioLeafNode >> moveDown [
parent moveDown: self.
]
{ #category : #'as yet unclassified' }
GrafoscopioLeafNode >> moveUp [
parent moveUp: self.
]
{ #category : #accessing }
GrafoscopioLeafNode >> parent [
"Returns the parent of the current node"
^ parent
]
{ #category : #accessing }
GrafoscopioLeafNode >> parent: aNode [
parent := aNode
]
{ #category : #'as yet unclassified' }
GrafoscopioLeafNode >> remove [
parent remove: self.
]