home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / lsEstuff / virt_obj.e < prev    next >
Encoding:
Text File  |  1999-10-20  |  1.2 KB  |  65 lines

  1. OPT MODULE
  2.  
  3. ->
  4. -> helloo!
  5. -> first attemt at a 'virtual object'
  6. -> kind of a multidimensional array of LONG .
  7. -> 991029
  8. ->
  9.  
  10.  
  11. MODULE '*nm'
  12. MODULE '*nmList'
  13.  
  14. EXPORT OBJECT virtObj OF nmList ; ENDOBJECT
  15.  
  16. OBJECT vo_node OF nm
  17.    value
  18.    elist
  19. ENDOBJECT
  20.  
  21. PROC new(elist) OF vo_node
  22.    self.elist := List(ListLen(elist))
  23.    ListCopy(self.elist, elist)
  24. ENDPROC
  25.  
  26. PROC end() OF vo_node IS DisposeLink(self.elist)
  27.  
  28. PROC find(vo:PTR TO virtObj, elist)
  29.    DEF n:PTR TO vo_node
  30.    n := vo.first()
  31.    WHILE n
  32.       IF ListCmp(elist, n.elist) THEN RETURN n
  33.       n := n.next
  34.    ENDWHILE
  35. ENDPROC NIL
  36.  
  37. PROC private_Methods_From_Here() OF virtObj IS EMPTY
  38.  
  39. /* set[x, y]), set[x, y, z]) set([x, y, z, a, b, c,,,]) etc*/
  40. /* MIX freely, above exaples is like different arrays in the same:) */
  41. PROC set(elist, value) OF virtObj
  42.    DEF n:PTR TO vo_node
  43.    n := find(self, elist)
  44.    IF n = NIL
  45.       NEW n.new(elist)
  46.       self.addLast(n)
  47.    ENDIF
  48.    n.value := value
  49. ENDPROC
  50.  
  51. PROC get(elist) OF virtObj
  52.    DEF n:PTR TO vo_node
  53.    n := find(self, elist)
  54.    IF n = NIL THEN RETURN NIL
  55. ENDPROC n.value
  56.  
  57. PROC unset(elist) OF virtObj
  58.    DEF n:PTR TO vo_node
  59.    n := find(self, elist)
  60.    IF n = NIL THEN RETURN NIL
  61.    self.delete(n)
  62. ENDPROC
  63.  
  64.  
  65.