Class: Simple

baja. Simple


new Simple()

Represents baja:Simple in BajaScript.

Simples are immutable and represent primitive data types in Niagara.
They are the basic building blocks of the architecture. Simples contain
no slots themselves but do contain an implicit data value that can be
encoded and decoded in a String format.

Simples must be immutable and under no circumstances should there be
any attempt to modify the contents of a Simple.

All Simples must conform to the following conventions...

  • Define a DEFAULT instance on the Simple constructor.
  • Define a make method.
  • Define a decodeFromString method on the Object's instance that takes a
    String and returns an instance of the Simple.
  • Define an encodeToString method on the Object's instance that encodes
    the value to a String.

Since this Constructor represents an abstract class, it should never
be directly used to create a new object.

Extends

Methods


decodeAsync(str [, batch])

The string encoding of certain Simples may include Type information, or
other data that may be require asynchronous operations to decode. BOX is
designed to handle these situations when decoding data from the station,
but when user code needs to decode string-encoded Simples directly, prefer
this method as it gives the individual Simple a chance to import Types,
etc. to ensure that the decoded Simple is fully correct.

The default implementation just returns decodeFromString directly.

Parameters:
Name Type Argument Description
str string
batch baja.comm.Batch <optional>

optional batch to use

Returns:

may return the Simple instance
directly, or a Promise resolving to same - so wrap in Promise.resolve()
if unsure.

Type
baja.Simple | Promise.<baja.Simple>

<abstract> decodeFromString(str)

Every Simple implementation must have a decodeFromString function.

Parameters:
Name Type Description
str string
Returns:
Type
baja.Simple

<abstract> encodeToString()

Every Simple implementation must have an encodeToString function.

Returns:
Type
string

equals(obj)

Equality test.

Parameters:
Name Type Description
obj
Overrides:
Returns:
Type
Boolean

equivalent(obj)

Equivalence test.

equivalent() is used to compare if two Objects have equivalent
state, but might not want to return true for equals since it
it has implied semantics for many operations. The default
implementation returns the result of baja.Object#equals.

Parameters:
Name Type Description
obj
Inherited From:
Returns:
Type
Boolean

getAgents( [is], batch)

Returns a promise that resolves to the agent list for this Object.

Parameters:
Name Type Argument Description
is Array.<String> <optional>

An optional array of filters to add to the
agent query.

batch baja.comm.Batch

An optional object used to batch network
calls together.

Inherited From:
See:
Returns:

A promise that will resolve with the Agent Info.

Type
Promise

getIcon()

Return the Object's Icon.

Inherited From:
Returns:
Type
baja.Icon

getType()

Get the type of this instance.

Inherited From:
Returns:
Type
Type

<abstract> make()

Every Simple implementation must have a make function. It can take
any arbitrary arguments. When constructing the Simple with baja.$, any
additional arguments will be passed to make().

Returns:
Type
baja.Simple
Example
//in the Simple declaration:
MySimple.prototype.make = function (a, b, c) {
  var mySimple = new MySimple();
  mySimple.a = a;
  mySimple.b = b;
  mySimple.c = c;
  return mySimple;
};

//when constructing:
var mySimple = baja.$('myModule:MySimple', 'a', 'b', 'c');

newCopy( [exact])

Every value may be cloned using the newCopy method.

Please note that Simples are immutable so they don't
allocate a new instance.

Parameters:
Name Type Argument Description
exact Boolean <optional>

true if an exact copy of the value should be
made (only valid in the Component architecture).

Inherited From:
See:
Returns:

a copy of the value (or the same instance if the value is a
Simple).


toString( [cx])

Returns the String representation of this object.

Parameters:
Name Type Argument Description
cx Object <optional>

optional context information to be used when
formatting the string

Overrides:
See:
Returns:

a string (if no context passed), or
either a string or a Promise (if context passed).

Type
String | Promise.<String>

valueOf()

Return the inner value of the object.

By default the object's instance is returned.

Inherited From:
Returns:

the inner value of the object or just the object's instance.

Type
*