home *** CD-ROM | disk | FTP | other *** search
- $PBExportHeader$setelement.sru
- $PBExportComments$An element in a classset (actually a list element)
- forward
- global type setelement from nonvisualobject
- end type
- end forward
-
- global type setelement from nonvisualobject
- end type
- global setelement setelement
-
- type variables
- powerobject contents
- setelement nextElement, prevElement
- end variables
-
- forward prototypes
- public function boolean contains (powerobject obj)
- public function powerobject get (integer index)
- public subroutine add (powerobject obj)
- public function boolean remove (powerobject obj)
- public function boolean remove (integer index)
- end prototypes
-
- public function boolean contains (powerobject obj);//
- if isNull(nextElement) then
- return false
- end if
- if obj = nextElement.contents then
- return true
- end if
- return nextElement.contains(obj)
- end function
-
- public function powerobject get (integer index);//
- if isNull(nextElement) then
- powerobject nullobject
- setNull(nullobject)
- return nullobject
- end if
- if index = 0 then
- return nextElement.contents
- end if
- return nextElement.get(index - 1)
- end function
-
- public subroutine add (powerobject obj);// insert obj just after this
- setelement element
-
- element = create setelement
- element.contents = obj
-
- element.prevElement = this
- element.nextElement = nextElement
- nextElement = element
- end subroutine
-
- public function boolean remove (powerobject obj);//
- if isNull(nextElement) then
- return false
- end if
- if obj = nextElement.contents then
- setelement element
- // remove nextElement from list and destroy it
- element = nextElement
- nextElement = element.nextElement
- if not isNull(nextElement) then
- nextElement.prevElement = this
- end if
- destroy element
- return true
- end if
- return nextElement.remove(obj)
- end function
-
- public function boolean remove (integer index);//
- if isNull(nextElement) then
- return false
- end if
- if index = 0 then
- setelement element
- // remove nextElement from list and destroy it
- element = nextElement
- nextElement = element.nextElement
- if not isNull(nextElement) then
- nextElement.prevElement = this
- end if
- destroy element
- return true
- end if
- return nextElement.remove(index - 1)
- end function
-
- on setelement.create
- TriggerEvent( this, "constructor" )
- end on
-
- on setelement.destroy
- TriggerEvent( this, "destructor" )
- end on
-
- event constructor;//
- setNull(contents)
- setNull(nextElement)
- setNull(prevElement)
- end event
-
-