ExtensionManager

org.nlogo.workspace.ExtensionManager
See theExtensionManager companion class

Some simple notes on loading and unloading extensions:

  • The load method is called when an extension appears in the extensions block when it wasn't there in the last compilation
  • The unload method is called when an extension is removed from the extensions block

ExtensionManager lifecycle call chart. In [square brackets] are methods called on the extension manager. In {curly braces} are the methods called on the class manager of the extension. Conditions are specified in (parens)

[startFullCompilation] // called by compiler | | (no exts) (ext foo) | | | v | [importExtension(foo)] // called by compiler | | | | (foo loaded) (foo not loaded) | | | | v v | {unload} {runOnce} | | | | v v | +-----{load} | | | // return control to compiler |(foo:bar not used) (foo:bar used) | | | | | v | | [replaceIdentifer(foo:bar)] // foo added to live set | | | | | | v v v [finishFullCompilation] | | | (no ext) (foo live) (foo not live) | | | --- --- v {unload} | ---

Attributes

Companion
class
Source
ExtensionManager.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

case class ExtensionData(extensionName: String, fileURL: URL, prefix: String, classManagerName: String, version: Option[String], modifiedRaw: Long)

Attributes

Source
ExtensionManager.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Source
ExtensionManager.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class JarLoader
class JarContainer(val jarClassLoader: ClassLoader, data: ExtensionData)

Attributes

Source
ExtensionManager.scala
Supertypes
class Object
trait Matchable
class Any