Skip to main content
Pentaho Documentation

Instance

pentaho.type. Instance

The root, abstract class of things that can be represented by the Pentaho Type API.

Types are constituted by two classes (or constructors): the instance class and the type class.

The former creates the actual instances of the type. The latter creates a single object (a singleton) that represents the type, which is shared by all instances of the type, and essentially, holds its metadata.

The type class of the Instance type is pentaho.type.Type.

When creating a subclass Foo of Instance, the corresponding type class is implicitly generated (a subclass of Type), and its singleton object is placed in the static property Foo.type.

Instances of the type Foo can also conveniently access the type's singleton object through the instance property this.$type.

The instance and type classes of a type are closely bound and must naturally reference each other. The type singleton object references back the prototype of the instance class, in a property named instance.

AMD Module

require(["pentaho/type/Instance"], function(Instance) { /* code goes here */ });

See also: pentaho.type.spec.IInstance , pentaho.type.spec.IType

Constructor

Name Description
new Instance()
Abstract

Creates an instance of this type.

Members

Name Description
type :  pentaho.type.Type
Static

Gets the type of this instance constructor.

$type :  pentaho.type.Type

Gets the type of this instance.

Methods

Name Description
configure(config) : Class.<pentaho.type.Instance>
Static

Applies configuration information to the class' prototype.

localize(config) : Class.<pentaho.type.Instance>
Static

Applies localization information to the class' prototype.

toJSON() : JsonValue

Creates a top-level JSON specification that describes this instance.

toSpec(keyArgs) : *

Creates a top-level specification that describes this instance.

toSpecInContext(keyArgs) : *
Abstract

Creates a specification that describes this instance.

Constructor Details

new Instance()
Abstract

Creates an instance of this type.

Source: javascript/web/pentaho/type/Instance.js, line 29

See also: pentaho.type.spec.IInstance , pentaho.type.spec.IType

Example

Create a new class Derived containing an attribute greeting and a method doSomething.

require(["pentaho/type/Instance"], function(Instance) {

 var Derived = Instance.extend({
 constructor: function(label) {
 this.label = label;
 },
 $type: { // type specification
 greeting: "Hello, ",
 veryLongString: "..."
 },
 saySomething: function() {
 console.log(this.$type.greeting + this.label + "!");
 }
 });

 var a = new Derived("Alice");
 a.saySomething(); // "Hello, Alice!"

 var b = new Derived("Bob");
 b.saySomething(); // "Hello, Bob!"

 // All instances share the same _type_:
 b.$type.greeting === a.$type.greeting // true
});

Members Details

type:  pentaho.type.Type
Static

Gets the type of this instance constructor.

Source: javascript/web/pentaho/type/Instance.js, line 211

$type:  pentaho.type.Type

Gets the type of this instance.

Source: javascript/web/pentaho/type/Instance.js, line 116

See also: pentaho.type.Instance.type , pentaho.type.Type#instance

Methods Details

configure(config) : Class.<pentaho.type.Instance>
Static

Applies configuration information to the class' prototype.

Works similarly to pentaho.lang.Base.implement.

Source: javascript/web/pentaho/type/Instance.js, line 281

Parameters:
Name Default Value Summary
config : object
Optional

The configuration information. When unspecified, or specified as undefined, and the type is identified, the corresponding module configuration, if already loaded, is used to configure the type.

Returns:
Name Description
Class.<pentaho.type.Instance>

This constructor.

localize(config) : Class.<pentaho.type.Instance>
Static

Applies localization information to the class' prototype.

Works similarly to pentaho.lang.Base.implement.

Source: javascript/web/pentaho/type/Instance.js, line 266

Parameters:
Name Default Value Summary
config : object

The localization information.

Returns:
Name Description
Class.<pentaho.type.Instance>

This constructor.

toJSON() : JsonValue

Creates a top-level JSON specification that describes this instance.

Attributes which do not have a JSON-compatible specification are omitted. Specifically, for inline types, attributes with a function value are not supported.

This method simply calls pentaho.type.Instance#toSpec with argument keyArgs.isJson as true and exists for seamless integration with JavaScript's JSON.stringify method.

Source: javascript/web/pentaho/type/Instance.js, line 198

Returns:
Name Description
JsonValue | null

A JSON-compatible specification.

See also: pentaho.type.Instance#toSpec

toSpec(keyArgs) : *

Creates a top-level specification that describes this instance.

If an ambient specification context currently exists, it is used to manage the serialization process. Otherwise, one is created and set as current. Then, the actual work is delegated to pentaho.type.Instance#toSpecInContext.

Source: javascript/web/pentaho/type/Instance.js, line 160

Parameters:
Name Default Value Summary
keyArgs : object
Optional

The keyword arguments' object. Passed to every instance and type serialized within this scope.

Please see the documentation of subclasses for information on additional, supported keyword arguments.

Parameters:
Name Default Value Summary
isJson : boolean
Optional
false

Generates a JSON-compatible specification. Attributes that do not have a JSON-compatible specification are omitted.

declaredType : pentaho.type.Type
Optional

The base type of this value's storage location. If the value does not have this exact type, its inline type property must be included in the specification. Otherwise, it can be omitted. When unspecified, the inline type property is only included if forceType is true.

forceType : boolean
Optional
false

In the specification, forces inclusion of the inline type property: _.

Returns:
Name Description
*

A specification of this instance.

toSpecInContext(keyArgs) : *
Abstract

Creates a specification that describes this instance.

Source: javascript/web/pentaho/type/Instance.js, line 178

Parameters:
Name Default Value Summary
keyArgs : object
Optional

The keyword arguments' object. Passed to every instance and type serialized within this scope.

Please see the documentation of subclasses for information on additional, supported keyword arguments.

Returns:
Name Description
*

A specification of this instance.

See also: pentaho.type.Instance#toSpec