: 4582 | 108609 | 12352

circular use of script libs 
New idea submissions, commenting and voting are no longer available on this site. Logins have also been disabled.
Use this IdeaSpace to post ideas about Domino Designer.

: 25
: 27
: 2
: Domino Designer
: oop, script_library
: Jan Schulz4398 23 Mar 2008
: / Email
Why does code like this (Visitor Pattern):
class User
    sub invite(b as Visitor)
    end sub
    sub doSomething()
    end sub
end class
class Visitor
    sub visitUser(a as User)
    end sub
end class
work in one class lib, but not when seperated into two libs ("Illegal Circular use")?
This makes some OOP concepts (in this case Visitors, which call the User back) impossible when seperating code into different libs or you get huge script libs (ls.doc only work with so long libs and it also means you touch all code when you just want to change one bit).
Please make this error go away!

1) Bill McNaughton40 (24 Mar 2008)
Agree, problem's been there since R5 and does impose unnecessary constraints when trying to build modular script library designs.
2) Rob Goudvis6585 (25 Mar 2008)
Yes, please: can't wait until this implementation!
3) Willy L53 (08 Sep 2008)
First, your code doesn't compile. It has two errors.

Second, you can use two libraries just fine.

Class User
Sub invite(b As Variant)
b.visitUser Me
End Sub
Sub doSomething()
End Sub
End Class

Class Visitor
Sub visitUser(a As Variant)
Call a.doSomething()
End Sub
End Class

Agent Visitor Test
Use "UserLib"
Use "VistorLib"

Sub Initialize
Dim User As New User
Dim Visitor As New Visitor

Call Visitor.VisitUser( User )
End sub
4) Jan Schulz4398 (18 Nov 2008)
@3: this is using variants, so is not compile save :-(


Welcome to IdeaJam™

You can run IdeaJam™ in your company. It's easy to install, setup and customize. Your employees, partners and customers will immediately see results.

Use IdeaJam to:

  • Collect ideas from employees
  • Solicit feedback and suggestions from employees and customers
  • Run innovation contests and competitions
  • Validate concepts
  • Use the power of "crowd-sourcing" to rank ideas and allow the best ideas to rise to the top

IdeaJam™ works with:

  • IBM Connections
  • IBM Lotus Quickr
  • Blogs and Wikis
  • Websphere Portal
  • Microsoft Sharepoint
  • and other applications.

IdeaJam has an extensive set of widgets and API's that allow you to extend and integrate IdeaJam™ with other applications.

Learn more about IdeaJam >>

XPages - allow view control to select a folder as a data source
Policy to Set File Types to Automatically Create with IBM Lotus Symphony
Explicit Policies
Process pressing of Ctrl+0 in chat window of integrated in LN 8.5 ST client
Switch beetwen opened windows by Ctrl+Tab
Separate frame for folders in navigator
Calendar Repeat Options
Add link to last page for iNotes Ultralite mode
Port the Admin Client multi-database tools to Working Sets.
Enable Editor Access Security on Auto Populate Fields on Group Documents
Enhance - Send Messages to All Invitees - feature in Calendar
Tell us whether LS and "old style" UI improvements will still be made
Live Text in the Browser/Xpages
User defined rules in DCT
Give us back a Lotusphere Europe
In Sametime Meeting, restrict chat to meeting members
Allow developers hide views from View-->>Goto to the end users in a much simple way.
Allow a database to be signed inside Designer
Server Notes.INI Settings Heirarchy

IdeaJam developed by

Elguji Software Logo