Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- COLLECTION:
- USING PROGRESS.Lang.*.
- USING app.core.util.Node.
- CLASS app.core.util.Collection:
- DEF private property currentNode AS Node NO-UNDO GET. private SET.
- DEF private property headNode AS Node NO-UNDO GET. private SET.
- DEF private property lastNode AS Node NO-UNDO GET. private SET.
- DEF public property OffEnd AS LOG NO-UNDO GET. private SET.
- CONSTRUCTOR Collection():
- THIS-OBJECT:currentNode = ?.
- THIS-OBJECT:headNode = ?.
- THIS-OBJECT:OffEnd = yes.
- END CONSTRUCTOR.
- METHOD public void AddObject(obj AS Object):
- DEF VAR newNode AS Node NO-UNDO.
- newNode = NEW Node(obj).
- IF THIS-OBJECT:headNode EQ ? THEN DO:
- THIS-OBJECT:headNode = newNode.
- THIS-OBJECT:currentNode = newNode.
- THIS-OBJECT:lastNode = newNode.
- THIS-OBJECT:OffEnd = no.
- END.
- ELSE DO:
- THIS-OBJECT:lastNode:SetNext(newNode).
- THIS-OBJECT:lastNode = newNode.
- END.
- END METHOD.
- METHOD public void NextNode():
- IF THIS-OBJECT:currentNode:NextNode() NE ? THEN DO:
- THIS-OBJECT:currentNode = THIS-OBJECT:currentNode:NextNode().
- END.
- ELSE DO:
- THIS-OBJECT:OffEnd = yes.
- END.
- END METHOD.
- METHOD public PROGRESS.Lang.Object GetObject():
- RETURN THIS-OBJECT:currentNode:GetObject().
- END METHOD.
- METHOD public void NodeReset():
- THIS-OBJECT:currentNode = THIS-OBJECT:headNode.
- END METHOD.
- END CLASS.
- NODE:
- USING PROGRESS.Lang.*.
- CLASS app.core.util.Node:
- DEF private property nextNode AS app.core.util.Node NO-UNDO GET. private SET.
- DEF private property nodeObject AS PROGRESS.Lang.Object NO-UNDO GET. private SET.
- CONSTRUCTOR Node(nodeObject AS PROGRESS.Lang.Object):
- THIS-OBJECT:nodeObject = nodeObject.
- THIS-OBJECT:nextNode = ?.
- END CONSTRUCTOR.
- METHOD public PROGRESS.Lang.Object GetObject():
- RETURN THIS-OBJECT:nodeObject.
- END METHOD.
- METHOD public app.core.util.Node NextNode():
- RETURN THIS-OBJECT:nextNode.
- END METHOD.
- METHOD public void SetNext(nextNode AS app.core.util.Node):
- THIS-OBJECT:nextNode = nextNode.
- END METHOD.
- END CLASS.
- USAGE:
- mycont = NEW Collection().
- mycont:AddObject(NEW Object()).
- mycont:AddObject(NEW Object()).
- mycont:AddObject(NEW Object()).
- myObj = mycont:GetObject().
- col-loop:
- REPEAT:
- IF mycont:OffEnd EQ yes THEN LEAVE col-loop.
- myObj = mycont:GetObject().
- mycont:NextNode().
- temphtml = temphtml + "<p>Another</p>".
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement