DOpusFactory

The DOpusFactory object is a helper object that you can use to create various other objects. Unlike the objects that represent existing things (e.g. Lister or Tab), the objects created by DOpusFactory are independent objects that you can instantiate whenever you need their functionality. The DOpusFactory object is obtained via the DOpus.Create method.

 

Method Name

Arguments

Return Type

Description

Blob

none

or <int:size>

or <byte, byte, ...>

or <Blob:source>

object:Blob 

Returns a new Blob object, that lets you access and manipulate a chunk of binary data from a script. If no parameters are given the new Blob will be empty - you can set its size using the resize method - otherwise you can specify the initial size as a parameter.

You can also create a Blob pre-filled with data by specifying the actual byte values (e.g. Blob(72,69,76,76,79)).

If another Blob (or an array - see the documentation on the Blob object for a discussion of this) is given then the new Blob will be created as a copy of the existing one.

BusyIndicator

none

object:BusyIndicator 

Creates a new BusyIndicator object, that lets you control the breadcrumbs bar busy indicator from your script.

Command

none

object:Command

Creates a new Command object, that lets you run Opus commands from a script.

Date

none
or <variant:date>

object:Date 

Creates a new Date object. If an existing Date object or date value is specified the new object will be initialized to that value, otherwise the date will be set to the current local time.

Map

none
or <variant:key>,

<variant:value>...

object:Map 

Creates a new Map object. If no arguments are provided, the Map will be empty. Otherwise, the Map will be pre-initialized with the supplied key/value pairs. For example: Map("firstname","fred","lastname","bloggs");. The individual keys and values can be different types.

StringSet

none
or <string>, ...

object:StringSet 

Creates a new case-sensitive StringSet object. If no arguments are provided, the StringSet will be empty. Otherwise it will be pre-initialized with the supplied strings; for example: StringSet("dog","cat","pony");
 

You can also pass an array of strings or Vector object to initialise the set.

StringSetI

none
or <string>, ...

object:StringSet 

Creates a new case-insensitive StringSet object. If no arguments are provided, the StringSet will be empty. Otherwise it will be pre-initialized with the supplied strings.

StringTools

none

object:StringTools 

Creates a new StringTools object, that provides helper functions for string encoding and decoding.

UnorderedSet

none
or variants...

object:UnorderedSet 

Creates a new UnorderedSet object. If no arguments are provided the UnorderedSet will be empty. Otherwise it will be pre-initialized with the supplied elements.
 

You can also pass an array or Vector to initialise the set.

Vector

none
or <int:elements>
or variants...
or object:Vector
or array

 

 

object:Vector 

Creates a new Vector object.

If no arguments are provided, the Vector will be empty.

If a single integer argument is provided, the Vector will be pre-initialized to that number of elements.

You can also pass another Vector or a JScript array, or most enumerable objects, as the argument to initialise the new Vector with the contents of an existing collection.

If more than one argument is provided, the Vector will be pre-initialized with those elements; for example: Vector("dog","cat","horse"); The individual elements can be different types.

If you want to create a Vector with just a single element, it is best to create an empty Vector and then add the element as a second step. Passing a single element during creation can have unexpected results, as it may be interpreted as one of the other cases. (Many of the scripting objects can be implicitly converted into integers or collections.)