The RPCObjectUtil class is a subset of ObjectUtil, removing methods that create dependency issues when RPC messages are in a bootstrap loader.
Static methods
staticexternalToString(value:(Any, Array<String>, Array<String>) ‑> String):Void
Assign an static external toString method rather than use the internal one.
The function passed in needs to have the same signature as toString
.
public static function externalToString(value:Any, namespaceURIs:Array = null, exclude:Array = null):String
Parameters:
externalToString | The function to call instead of internalToString. |
---|
staticgetClassInfo(obj:Dynamic, ?excludes:Array<String>, ?options:Dynamic):Dynamic
Returns information about the class, and properties of the class, for the specified Object.
Parameters:
obj | The Object to inspect. |
---|---|
exclude | Array of Strings specifying the property names that should be
excluded from the returned result. For example, you could specify
|
options | An Object containing one or more properties
that control the information returned by this method.
The properties include the following:
- |
Returns:
An Object containing the following properties:
- name
: String containing the name of the class;
- properties
: Sorted list of the property names of the specified object.
staticsetToStringExcludes(excludes:Array<String>):Void
Change default set of strings to exclude.
Parameters:
excludes | The array of strings to exclude. |
---|
statictoString(value:Any, ?namespaceURIs:Array<String>, ?exclude:Array<String>):String
Pretty-prints the specified Object into a String. All properties will be in alpha ordering. Each object will be assigned an id during printing; this value will be displayed next to the object type token preceded by a '#', for example:
(mx.messaging.messages::AsyncMessage)#2.
This id is used to indicate when a circular reference occurs.
Properties of an object that are of the Class
type will
appear only as the assigned type.
For example a custom definition like the following:
public class MyCustomClass { public var clazz:Class; }
With the clazz
property assigned to Date
will display as shown below:
(somepackage::MyCustomClass)#0 clazz = (Date)
Parameters:
obj | Object to be pretty printed. |
---|---|
namespaceURIs | Array of namespace URIs for properties that should be included in the output. By default only properties in the public namespace will be included in the output. To get all properties regardless of namespace pass an array with a single element of "*". |
exclude | Array of the property names that should be excluded from the output. Use this to remove data from the formatted string. |
Returns:
String containing the formatted version of the specified object.
// example 1
var obj = new AsyncMessage();
obj.body = [];
obj.body.push(new AsyncMessage());
obj.headers["1"] = { name: "myName", num: 15.3};
obj.headers["2"] = { name: "myName", num: 15.3};
obj.headers["10"] = { name: "myName", num: 15.3};
obj.headers["11"] = { name: "myName", num: 15.3};
trace(ObjectUtil.toString(obj));
// will output to flashlog.txt
(mx.messaging.messages::AsyncMessage)#0
body = (Array)#1
[0] (mx.messaging.messages::AsyncMessage)#2
body = (Object)#3
clientId = (Null)
correlationId = ""
destination = ""
headers = (Object)#4
messageId = "378CE96A-68DB-BC1B-BCF7FFFFFFFFB525"
sequenceId = (Null)
sequencePosition = 0
sequenceSize = 0
timeToLive = 0
timestamp = 0
clientId = (Null)
correlationId = ""
destination = ""
headers = (Object)#5
1 = (Object)#6
name = "myName"
num = 15.3
10 = (Object)#7
name = "myName"
num = 15.3
11 = (Object)#8
name = "myName"
num = 15.3
2 = (Object)#9
name = "myName"
num = 15.3
messageId = "1D3E6E96-AC2D-BD11-6A39FFFFFFFF517E"
sequenceId = (Null)
sequencePosition = 0
sequenceSize = 0
timeToLive = 0
timestamp = 0
// example 2 with circular references
obj = {};
obj.prop1 = new Date();
obj.prop2 = [];
obj.prop2.push(15.2);
obj.prop2.push("testing");
obj.prop2.push(true);
obj.prop3 = {};
obj.prop3.circular = obj;
obj.prop3.deeper = new ErrorMessage();
obj.prop3.deeper.rootCause = obj.prop3.deeper;
obj.prop3.deeper2 = {};
obj.prop3.deeper2.deeperStill = {};
obj.prop3.deeper2.deeperStill.yetDeeper = obj;
trace(ObjectUtil.toString(obj));
// will output to flashlog.txt
(Object)#0
prop1 = Tue Apr 26 13:59:17 GMT-0700 2005
prop2 = (Array)#1
[0] 15.2
[1] "testing"
[2] true
prop3 = (Object)#2
circular = (Object)#0
deeper = (mx.messaging.messages::ErrorMessage)#3
body = (Object)#4
clientId = (Null)
code = (Null)
correlationId = ""
destination = ""
details = (Null)
headers = (Object)#5
level = (Null)
message = (Null)
messageId = "14039376-2BBA-0D0E-22A3FFFFFFFF140A"
rootCause = (mx.messaging.messages::ErrorMessage)#3
sequenceId = (Null)
sequencePosition = 0
sequenceSize = 0
timeToLive = 0
timestamp = 0
deeper2 = (Object)#6
deeperStill = (Object)#7
yetDeeper = (Object)#0