Superx++ Special Objects

Purpose This page describes the special objects that are used in the Superx++ language. These objects can be accessed and manipulated just like any other Superx++ object using the <eval> statement. This page also describes the accessor statements used to get the entire objects as well.
Accessor Statements
<getclasses>
<getclasses> is a statement used to get the entire classes object.

<getclasses />
will get the entire classes object and is the equivalent of:
<eval object="classes" />

<getexception>
<getexception> is a statement used to get the entire exception object.

<getexception />
will get the entire exception object and is the equivalent of:
<eval object="exception" />

<getmem>
<getmem> is a statement used to get the entire mem object.

<getmem />
will get the entire mem object and is the equivalent of:
<eval object="mem" />

<getxin>
<getxin> is a statement used to get the entire xin object.

<getxin />
will get the entire xin object and is the equivalent of:
<eval object="xin" />

<getxpp>
<getxpp> is a statement used to get the entire xpp object.

<getxpp />
will get the entire xpp object and is the equivalent of:
<eval object="xpp" />

Special Objects
classes
classes represents the run-time class memory.

<eval object="classes" />
will get the object tree of all the currently defined classes.

<eval object="classes" member="child">
   <parm type="int">2</parm>
</eval>

will get the 3rd class defined in the classes object tree.

exception
exception represents the last exception that was raised in the Superx++ program.

<eval object="exception" />
will get the entire exception object.

<eval object="exception/type" />
will get the type of the exception.

<eval object="exception/description" />
will get the description of the exception.

mem
mem represents the run-time memory which contains all the instantiated objects.

<eval object="mem" />
will get the object tree of all the currently instantiated objects.

<eval object="mem" member="child">
   <parm type="int">2</parm>
</eval>

will get the 3rd object instantiated in the memory object tree.

<eval object="mem/MyEmployee" />
will get the MyEmployee object as a child node from the memory object.

<eval object="mem/MyEmployee">
   <Personal>
      <Name>Joe</Name>
      <ID>12345</ID>
   </Personal>
</eval>

will modify the MyEmployee object by giving it the Personal child node.

xin
xin represents the input stream which contains the XML document to be passed as a hierarchical set of input parameters into a Superx++ program.

<eval object="xin" />
will get the entire exception object.

<eval object="xin/MyParm" />
will get the MyParm object within the input stream.

xpp
xpp represents the Superx++ program as currently defined in memory. It is useful in the cases where a program is modified and therefore is different in memory than in the source files.

<eval object="xpp" />
will get the entire xpp object.

<eval object="xpp" member="child">
   <parm type="int">2</parm>
</eval>

will get the 3rd object within the xpp object-- i.e. the 3rd statement in the program.