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.UInstanceModule , pentaho.type.spec.UTypeModule , pentaho.type.spec.IInstance , pentaho.type.spec.IInstanceProto , pentaho.type.spec.ITypeProto
Constructor
Name | Description |
---|---|
new Instance() Abstract | Creates an instance of this type. |
Members
Name | Description |
---|---|
type : Static | Gets the type of this instance constructor. |
$type : | Gets the type of this instance. |
Methods
Name | Description |
---|---|
extend(name, instSpec, classSpec, keyArgs) : Class.<<code>pentaho.type.Value > Static | Creates a subtype of this one. |
toJSON() : UJsonValue | Creates a top-level JSON specification that describes this instance. |
toSpec(keyArgs) : any | Creates a top-level specification that describes this instance. |
toSpecInContext(keyArgs) : any 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 33 See also: pentaho.type.spec.UInstanceModule , pentaho.type.spec.UTypeModule , pentaho.type.spec.IInstance , pentaho.type.spec.IInstanceProto , pentaho.type.spec.ITypeProto Example Create a new class require(["pentaho/type/Context"], function(Context) { Context.createAsync(function(context) { var Instance = context.get("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: Static |
---|
Gets the type of this instance constructor. |
$type: |
---|
Gets the type of this instance. Source: javascript/web/pentaho/type/instance.js, line 128 See also: pentaho.type.Instance.type , pentaho.type.Type#instance |
Methods Details
extend(name, instSpec, classSpec, keyArgs) : Class.<<code>pentaho.type.Value > Static | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Creates a subtype of this one. For more information on class extension, in general, see Source: javascript/web/pentaho/type/instance.js, line 238
See also: pentaho.lang.Base.extend |
toJSON() : UJsonValue | ||||
---|---|---|---|---|
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 Source: javascript/web/pentaho/type/instance.js, line 210
See also: pentaho.type.Instance#toSpec |
toSpec(keyArgs) : any | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Creates a top-level specification that describes this instance. If an Source: javascript/web/pentaho/type/instance.js, line 172
|
toSpecInContext(keyArgs) : any Abstract | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Creates a specification that describes this instance. Source: javascript/web/pentaho/type/instance.js, line 190
See also: pentaho.type.Instance#toSpec |