CLR.CLS 100.20160811 Date: 2016-08-11 Author: Manuel Raffel, Rony G. Flatscher Overview Index
Overview of CLR.CLS, Version 100.20160811 ### Packagelist work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # Index Name filter:
C
CLR clr.addAssembly clr.assembly (GET/SET) clr.box CLR.CLS clr.clzProxy (GET/SET) clr.createArray clr.createEventHandler clr.dispatch clr.FieldName clr.findAssemblyName clr.findMatchingEvent clr.import clr.import clr.initAssemblies clr.MethodName clr.object (GET) clr.object (SET) clr.object (GET/SET) clr.PropertyName clr.proxy (GET/SET) clr.setPropertyValue clr.type (GET) clr.type (SET) clr.type (GET/SET) clr.typeName (GET/SET) clr.unbox clr.wrap CLR_Class CLR_Enum CLR_Event CLR_Proxy CLRLogger CLRThread
D
doLogging (GET)
E
eventName (GET)
L
logLevel (GET) logLevel (SET) logLevels (GET)
P
pp.line
R
run
S
start string
U
unknown unknown unknown
# Package: CLR.CLS ### Classes
PUBLIC CLR
Description: | The class that represents CLR objects and which is responsible for interacting with the peer CLR object on behalf of the ooRexx programmer. An instance of this class holds a reference to the peer CLR object and a reference to that object's type to ease reflective interactions.
Attributes: | clr.object (GET) clr.object (SET) clr.type (GET) clr.type (SET)
Methods: | clr.dispatch clr.import clr.setPropertyValue string unknown
PRIVATE CLR_Class
Description: | The proxy class representing an imported CLR type. When sending messages to the class proxy object, then resolution starts with the static scope first, followed by the instance scope, if the static scope could not be resolved. The proxy class can be used to instantiate CLR objects in the ooRexx style by merely sending the proxy class the message "NEW", supplying the arguments, if any.
Attributes: | clr.assembly clr.clzProxy clr.object clr.proxy clr.type clr.typeName
Methods: | unknown
PRIVATE CLR_Enum
Description: | Class to allow to wrap Enum values in order to ease comparing with Rexx strings. It implements the Rexx comparison methods "=", "\=", "<>", and "><" which in turn accept as the "other" object either another CLR Enumeration object (a proxy for an instance of a "System.Enum" type) or a Rexx string representing the Enum string value.
Methods: | <> = >< \=
PRIVATE CLR_Event
Description: | A proxy class to ease adding and removing event handler to/from CLR objects.
Attributes: | eventName (GET)
Methods: | + -
PRIVATE CLR_Proxy
Description: | This class serves as a proxy for CLR/.Net objects of any type, returned from CLR/.Net. The routine `clr.wrap()` will use this class, if a pure BSF (Java) object is supplied, assuming it is from CLR/.Net. author Rony G. Flatscher since 2016-06-18
PUBLIC CLRLogger
Description: | Utility class to allow logging merely by sending the messages "FATAL", "ERROR", "WARN", "INFO", "DEBUG" or "TRACE" with the log text as argument to the class object `.CLRLogger`. All interaction is with the class object directly, there is no instance one is allowed to create.
Attributes: | doLogging (GET) logLevel (GET) logLevel (SET) logLevels (GET)
Methods: | unknown
PUBLIC CLRThread
Description: | A class that uses "java.lang.Thread" to create a thread for executing Rexx code in the context of CLR/.Net concurrently. To take advantage of this ooRexx class it is necessary to subclass it, and to implement the abstract method "run".
Methods: | run start
### Routines
Routine: | clr.addAssembly
Accessmodifier | PUBLIC
Returns Value | Yes
PARSE ARG: | assemblyName
Description: | Routine that queries all exported types defined in the supplied assembly and caches their full names and assembly names in `.clr.dir~assemblyName`. param assemblyName the assembly name to work on
Routine: | clr.box
Accessmodifier | PUBLIC
Returns Value | Yes
USE strict ARG: | typeIndicator, strValue
Description: | Boxes (wraps) a Rexx string representing a primitive type into a CLR object using a CLR wrapper class. Rexx strings are turned into CLR string objects (type: `System.String`). param typeIndicator one of the following strings: "System.String", "STring" "System.Boolean", "BOolean" "System.Byte", "BYte" "System.SByte", "SByte" "System.Char", "CHAR" "System.Decimal", "DEcimal" "System.Double", "DOuble" "System.Int16", "INT16" "System.UInt16", "UINT16" "System.Int32", "INT32" "System.UInt32", "UINT32" "System.Int64", "INT64" "System.UInt64", "UINT64" "System.Single", "SIngle" param strValue the Rexx string containing the primitive value or plain string to box/wrap/convert return the boxed CLR value, the CLR string value or `.nil` if `.nil` was supplied
Routine: | clr.createArray
Accessmodifier | PUBLIC
Returns Value | Yes
use strict ARG: | typeName, capacity
Description: | Utility routine that allows creating a single dimensioned CLR array with the supplied type and capacity. param typeName the fully qualified CLR type name param capacity the capacity (a non-negative whole number) return a System.Array instance (a CLR array object) of the specified type and capacity
Routine: | clr.createEventHandler
Accessmodifier | PUBLIC
Returns Value | Yes
USE strict ARG: | rexxEventHandler, rexxData=.nil
Description: | Creates an instance of "system.EventHandler" with the Rexx event handler object to handle any events. param rexxEventHandler a Rexx object that handles the events param rexxData an optional Rexx object that will be supplied with each event (last event argument, appended by BSF4ooRexx, which is a Rexx directory object; the "rexxData" object can be retrieved from it using as index the value "USERDATA"; cf. BSF4ooRexx) return an instance of "System.EventHandler", where the rexxEventHandler object will process the events
Routine: | clr.FieldName
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, fieldName
Description: | Returns the mixed case property name matching caselessly the supplied field name in the supplied CLR type. param clrType the CLR type to look for the supplied field name param fieldName the name of the field to look for in the supplied `clrType` return .nil if no field found in the type by the given name (comparisons are caseless) or the correctly spelled field name
Routine: | clr.findAssemblyName
Accessmodifier | PRIVATE
Returns Value | Yes
USE strict ARG: | typeName
Description: | Determine and return the assembly name from a fully qualified type name. param typeName fully qualified type name return assembly name where the type gets exported
Routine: | clr.findMatchingEvent
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, eventName
Description: | Returns the mixed case event name matching caselessly the supplied event name in the supplied CLR type. param clrType the CLR type to look for the supplied event name param fieldName the name of the event to look for in the supplied `clrType` return .nil if no event found in the type by the given name (comparisons are caseless) or the correctly spelled event name
Routine: | clr.import
Accessmodifier | PUBLIC
Returns Value | Yes
USE strict ARG: | typeName, rexxName4local=.nil
Description: | Routine to import a CLR/.Net class, the imported class understands the NEW-message. param typeName the fully qualified CLR/.net type name param rexxName4local the name to store in .local, defaults to `.nil`, which inhibits the default entry of the CLR::CLR_IMPORT return a Rexx class object, subclassing CLR_Class, proxying the CLR/.Net type object
Routine: | clr.initAssemblies
Accessmodifier | PRIVATE
Returns Value | No
Description: | Routine that makes sure that the fully qualified names of the exported types defined in the assemblies "mscorlib" and "System" get cached with their assembly names in `.clr.dir~assemblyName`.
Routine: | clr.MethodName
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, methodName
Description: | Returns the mixed case method name matching caselessly the supplied method name in the supplied CLR type. param clrType the CLR type to look for the supplied method name param methodName the name of the method to look for in the supplied `clrType` return .nil if no method found in the type by the given name (comparisons are caseless) or the correctly spelled method name
Routine: | clr.PropertyName
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, propertyName
Description: | Returns the mixed case property name matching caselessly the supplied property name in the supplied CLR type. param clrType the CLR type to look for the supplied method name param propertyName the name of the property to look for in the supplied `clrType` return .nil if no property found in the type by the given name (comparisons are caseless) or the correctly spelled property name
Routine: | clr.unbox
Accessmodifier | PUBLIC
Returns Value | Yes
USE ARG: | clrObject
Description: | Routine to turn values of boxed/wrapped `CLR` primitive types or System.String values to Rexx strings, otherwise returns argument unchanged. param clrObject the CLR object to unbox or to turn into a Rexx string return a Rexx string or the argument unchanged, if `clrObject` does not represent a boxed CLR value or a CLR string
Routine: | clr.wrap
Accessmodifier | PUBLIC
Returns Value | Yes
USE ARG: | value
Description: | Processes received parameter "value" depending on its type. Always returns a CLR. If a CLR object which is a system.Enum, but not an instance of the `CLR_Enum` class, then an instance of `CLR_Enum` will be created and returned using the CLR object's `clr.object` and `clr.type` attributes. If a Rexx string is supplied which can be represented as a number, then a CLR object representing a wrapped system.Int32, system.Int64 or system.Decimal gets returned, depending on the value range. Otherwise a system.String object gets returned If a BSF (Java proxy) object is supplied it will be wrapped either as a `CLR_Enum` or as a `CLR_Proxy` object. param value a CLR, a BSF or a Rexx string object return a CLR object wrapping up the supplied `value`
Routine: | pp.line
Accessmodifier | PRIVATE
Returns Value | Yes
use strict arg: | lineNr
Description: | Private utility method to "pretty-print" ooRexx line numbers in debug statements. Intended for taking advantage of the ooRexx class `CLRLogger` in this Rexx package.
### Requires

Package: | BSF.CLS

Source: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls
# PUBLIC Class: CLR Metaclass: Class Description: The class that represents CLR objects and which is responsible for interacting with the peer CLR object on behalf of the ooRexx programmer. An instance of this class holds a reference to the peer CLR object and a reference to that object's type to ease reflective interactions. ### Init
init PUBLIC
Expose: | clr.object clr.type
USE ARG: | typeName, param=.nil, ...
Description: | Constructor method. param typeName the fully qualified name of a CLR type to instantiate param param optionally one or more paramaters to pass on to the CLR constructor
### Methods Summary
PUBLIC clr.dispatch
PUBLIC clr.import CLASS
PRIVATE clr.setPropertyValue CLASS
PUBLIC string
PUBLIC unknown CLASS
### Attributes
Attribute: | PUBLIC clr.object GET
Description: | Getter attribute method to get the peer `clr.object`. return the CLR object (a BSF object) that is a peer of the CLR object it represents
Attribute: | PRIVATE clr.object SET
Description: | Private setter attribute method to set the peer `clr.object`. param the BSF (sic!) object that is the peer of the CLR object it represents
Attribute: | PUBLIC clr.type GET
Description: | Getter attribute method to get the `clr.type` of the `clr.object`. return the CLR type object (a BSF object) that is the type of the `clr.object`
Attribute: | PRIVATE clr.type SET
Description: | Private setter attribute method to set the peer `clr.type`. param the BSF (sic!) object that is the CLR type of `clr.object`
### Methods
Method: | clr.dispatch
Accessmodifier: | PUBLIC
Returns Value: | Yes
PARSE ARG: | messageName
Description: | Directly forwards a message to the "unknown" method of this CLR. This is needed if a method on .NET side is to be called which is named like a method on the ooRexx side. Examples are the ooRexx methods "class", "start" or "init" (inherited from the ooRexx root class `.Object`). param messageName the name of the .NET message
Method: | clr.import
Accessmodifier: | PUBLIC
Returns Value: | Yes
Option(s): | CLASS
USE strict ARG: | typeName, rexxName4Local=(typeName)
Description: | Class method to import a CLR type into ooRexx and allow that type to be treated as an ooRexx class that possesses the `new` class method to create instances of the CLR type it represents. param typeName the fully qualified type name which should be imported into ooRexx as an ooRexx class proxy param rexxName4Local optional string which gets used to store the imported class proxy in the `.local` directory. Prepending a dot to that name (using it as an environment symbol) will cause ooRexx to automatically search for this entry in `.nil`. If this argument is given and set to `.nil`, then no entry will be created in the ooRexx `.local` directory. return the ooRexx class object representing the CLR type, i.e. an instance of class `"CLR_Class"`
Method: | clr.setPropertyValue
Accessmodifier: | PRIVATE
Returns Value: | Yes
Option(s): | CLASS
Expose: | clr.object clr.type
USE ARG: | propertyName, propertyValue
Description: | Private method that sets the specified property to the supplied value in the .NET object proxied via this CLR proxy object. param propertyName the name of the property to be set param propertyValue the value the property is to be set to eturn self
Method: | string
Accessmodifier: | PUBLIC
Returns Value: | Yes
Expose: | clr.object
Description: | The method that renders the CLR proxy object in a format that indicates its type by including the CLR type name. return a string representing the CLR proxy object
Method: | unknown
Accessmodifier: | PUBLIC
Returns Value: | Yes
Option(s): | CLASS
Expose: | clr.object clr.type
USE ARG: | msgName, msgArgs
Description: | The unknown method tries to find methods, properties, fields or events (in that order) that match the unknown message name. It will carry out the appropriate operation. The implementation allows also to assign new values to CLR properties, if the ooRexx programmer employs them like an ooRexx attribute. In addition it allows for adding an event handler to an event object by the name of the message. param msgName the name of the message that was not understood (no method by that name was found) param msgArgs an array containing the arguments supplied with the message, if any return returns the appropriate object or .nil, if appropriate
### Instantiated Classes
CLR_Class CLR_Event CLR_Proxy CLRLogger
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Class: CLR_Class Subclass: clr Metaclass: Class Description: The proxy class representing an imported CLR type. When sending messages to the class proxy object, then resolution starts with the static scope first, followed by the instance scope, if the static scope could not be resolved. The proxy class can be used to instantiate CLR objects in the ooRexx style by merely sending the proxy class the message "NEW", supplying the arguments, if any. ### Init
init PUBLIC
Description: | Constructor that creates a CLR proxy object by means of reflection. Any supplied arguments will be relayed to CLR.
### Methods Summary
PUBLIC unknown CLASS
### Attributes
Attribute: | PUBLIC clr.assembly CLASS
Description: | Class attribute that stores the CLR assembly object that was used to load this type.
Attribute: | PUBLIC clr.clzProxy CLASS
Description: | Class attribute that stores the CLR instance that represents this CLR type. Its `clr.object` and `clr.type` attributes refer the `clr.object` Java proxy, thereby allowing the resolution of messages that are aimed at static members (methods, properties, fields, events) of the proxied CLR type.
Attribute: | PUBLIC clr.object CLASS
Description: | Class attribute that stores the proxy Java type object (an instance of BSF) that represents the CLR type.
Attribute: | PUBLIC clr.proxy CLASS
Description: | Class attribute that stores the CLR instance that represents this CLR type. Its `clr.object` and `clr.type` attributes refer the `clr.object` and `clr.type`, respectively. This allows the resolution of messages that are aimed at instance members (methods, properties, fields, events) of the proxied CLR type.
Attribute: | PUBLIC clr.type CLASS
Description: | Class attribute that stores the proxy Java type object (an instance of BSF) that represents the type/class object of `clr.object`.
Attribute: | PUBLIC clr.typeName CLASS
Description: | Class attribute that stores the CLR type name for which this class object is a peer.
### Methods
Method: | unknown
Accessmodifier: | PUBLIC
Returns Value: | Yes
Option(s): | CLASS
Expose: | clr.object clr.type clr.proxy clr.clzProxy
Description: | Class unknown method that first forwards a message to `clr.clzProxy` which in effect tries to resolve the static context. If this is not successful (the CLR unknown method raises a condition), then another attempt is made by forwarding the message to `clr.proxy` which resolves the instance context.
### Instantiated Classes
CLRLogger
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Class: CLR_Enum Subclass: CLR_PROXY Metaclass: Class Description: Class to allow to wrap Enum values in order to ease comparing with Rexx strings. It implements the Rexx comparison methods "=", "\=", "<>", and "><" which in turn accept as the "other" object either another CLR Enumeration object (a proxy for an instance of a "System.Enum" type) or a Rexx string representing the Enum string value. ### Methods Summary
PUBLIC <>
PUBLIC =
PUBLIC >< CLASS
PUBLIC \=
### Methods
Method: | <>
Accessmodifier: | PUBLIC
Returns Value: | No
Description: | A synonym for method "\=", to which the invocation gets forwarded to.
Method: | =
Accessmodifier: | PUBLIC
Returns Value: | Yes
use strict arg: | otherValue
Description: | The equal comparison method. If "other" is a Rexx string then the comparison is carried out caselessly. param other mandatory value, either a CLR proxy for a "System.Enum" instance or a Rexx string return .true if the this value and "other" value are the same, .false else
Method: | ><
Accessmodifier: | PUBLIC
Returns Value: | No
Option(s): | CLASS
Description: | A synonym for method "\=", to which the invocation gets forwarded to.
Method: | \=
Accessmodifier: | PUBLIC
Returns Value: | Yes
use strict arg: | otherValue
Description: | The unequal comparison method. If "other" is a Rexx string then the comparison is carried out caselessly. param other mandatory value, either a CLR proxy for a "System.Enum" instance or a Rexx string return .true if the this value and "other" value are not the same, .false else
### Instantiated Classes
CLRLogger
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Class: CLR_Event Subclass: CLR_Proxy Metaclass: Class Description: A proxy class to ease adding and removing event handler to/from CLR objects. ### Init
init
Expose: | eventName
use strict arg: | o, eventName
Description: | Constructor. param o the CLR object for which event handling should become possible param eventName the event name for which adding and removing event handler should become possible
### Methods Summary
PUBLIC +
PUBLIC - ABSTRACT CLASS
### Attributes
Attribute: | PUBLIC eventName GET
Description: | Attribute getter method to allow querying the event name for which this object allows to add or remove event handlers.
### Methods
Method: | +
Accessmodifier: | PUBLIC
Returns Value: | Yes
Expose: | eventName
USE ARG: | eventHandler
Description: | Method to add an event handler for the named event `eventName` of the CLR object. param eventHandler a Java Rexx proxy to be added as an event handler return self
Method: | -
Accessmodifier: | PUBLIC
Returns Value: | Yes
Option(s): | ABSTRACT CLASS
Expose: | eventName
USE ARG: | eventHandler
Description: | Method to remove an event handler for the named event `eventName` from the CLR object. param eventHandler a Java Rexx proxy serving as an event handler that should be removed return self
### Instantiated Classes
CLRLogger
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # Class: CLR_Proxy Subclass: clr Metaclass: Class Description: This class serves as a proxy for CLR/.Net objects of any type, returned from CLR/.Net. The routine `clr.wrap()` will use this class, if a pure BSF (Java) object is supplied, assuming it is from CLR/.Net. author Rony G. Flatscher since 2016-06-18 ### Init
init
use strict arg: | argObj, argType=.nil
Description: | Constructor. param argObj mandatory object, can be a CLR or BSF object param argType optional object, if supplied, must be a BSF object
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Class: CLRLogger Metaclass: Class Description: Utility class to allow logging merely by sending the messages "FATAL", "ERROR", "WARN", "INFO", "DEBUG" or "TRACE" with the log text as argument to the class object `.CLRLogger`. All interaction is with the class object directly, there is no instance one is allowed to create. ### Init
init PUBLIC
Expose: | logLevels logLevel doLogging logStream
Description: | Constructor, defining the log levels "OFF", "FATAL", "ERROR", * "WARN", "INFO", "DEBUG" and "TRACE", setting the attribute `logLevel` to "OFF". Determines whether the ooRexx version in use has the `.traceOutput` stream, if not the `.error` stream is used for log output instead.
### Methods Summary
PUBLIC unknown CLASS
### Attributes
Attribute: | PUBLIC doLogging GET CLASS
Description: | Getter attribute method that indicates whether log messages get processed. return `.true` if logging is active, `.false` if not
Attribute: | PUBLIC logLevel GET CLASS
Description: | Getter attribute method that returns the current `logLevel` setting. return one of the strings: "OFF", "FATAL", "ERROR", "WARN", "INFO", "DEBUG", "TRACE"
Attribute: | PUBLIC logLevel SET CLASS
Description: | Setter attribute method that returns a copy of the log levels directory. If set to "OFF", then the attribute `doLogging` is set to `.false`, otherwise to `.true`. param desiredLevel, one of "OFF", "FATAL", "ERROR", "WARN", "INFO", "DEBUG" and "TRACE".
Attribute: | PUBLIC logLevels GET CLASS
Description: | Getter attribute method that returns a copy of the log levels directory. return copy of `logLevels` directory object
### Methods
Method: | unknown
Accessmodifier: | PUBLIC
Returns Value: | Yes
Option(s): | CLASS
Expose: | logLevel logLevels logStream
USE ARG: | levelName, args
Description: | Unknown method that handles the messages "OFF", "FATAL", "ERROR", "WARN", "INFO", "DEBUG", "TRACE", depending on the value of the attribute `logLevel`. The handling is determined by the following relation: `"OFF" < "FATAL" < "ERROR" < "WARN" < "INFO" < "DEBUG" < "TRACE"`. Hence, if the attribute `logLevel` is set to `"OFF"`no log messages get displayed. By contrast, if `logLevel` is set to `"TRACE"`all log messages get displayed. param levelName the unknown message name param args an array object containing the arguments supplied with the unknown message``````
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Class: CLRThread Metaclass: Class Description: A class that uses "java.lang.Thread" to create a thread for executing Rexx code in the context of CLR/.Net concurrently. To take advantage of this ooRexx class it is necessary to subclass it, and to implement the abstract method "run". ### Methods Summary
PUBLIC run ABSTRACT CLASS
PUBLIC start ABSTRACT
### Methods
Method: | run
Accessmodifier: | PUBLIC
Returns Value: | No
Option(s): | ABSTRACT CLASS
Description: | Abstract method that needs to be implemented in the subclassed Rexx class.
Method: | start
Accessmodifier: | PUBLIC
Returns Value: | No
Option(s): | ABSTRACT
USE strict ARG: | rexxData=.nil
Description: | This method creates a new thread. param rexxData optional, if supplied this Rexx object gets supplied, if a Java method invocation causes any Rexx method of the subclassed Rexx class to be executed. In that case BSF4ooRexx will append a "slotDir" Rexx directory argument to the Java arguments, that will have an entry "USERDATA" returning this Rexx object "rexxData"
### Instantiated Classes
CLRLogger
### Requires
Package: | BSF.CLS
Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.addAssembly
Accessmodifier | PUBLIC
Returns Value | Yes
PARSE ARG: | assemblyName
Description: | Routine that queries all exported types defined in the supplied assembly and caches their full names and assembly names in `.clr.dir~assemblyName`. param assemblyName the assembly name to work on
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.box
Accessmodifier | PUBLIC
Returns Value | Yes
USE strict ARG: | typeIndicator, strValue
Description: | Boxes (wraps) a Rexx string representing a primitive type into a CLR object using a CLR wrapper class. Rexx strings are turned into CLR string objects (type: `System.String`). param typeIndicator one of the following strings: "System.String", "STring" "System.Boolean", "BOolean" "System.Byte", "BYte" "System.SByte", "SByte" "System.Char", "CHAR" "System.Decimal", "DEcimal" "System.Double", "DOuble" "System.Int16", "INT16" "System.UInt16", "UINT16" "System.Int32", "INT32" "System.UInt32", "UINT32" "System.Int64", "INT64" "System.UInt64", "UINT64" "System.Single", "SIngle" param strValue the Rexx string containing the primitive value or plain string to box/wrap/convert return the boxed CLR value, the CLR string value or `.nil` if `.nil` was supplied
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.createArray
Accessmodifier | PUBLIC
Returns Value | Yes
use strict ARG: | typeName, capacity
Description: | Utility routine that allows creating a single dimensioned CLR array with the supplied type and capacity. param typeName the fully qualified CLR type name param capacity the capacity (a non-negative whole number) return a System.Array instance (a CLR array object) of the specified type and capacity
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.createEventHandler
Accessmodifier | PUBLIC
Returns Value | Yes
USE strict ARG: | rexxEventHandler, rexxData=.nil
Description: | Creates an instance of "system.EventHandler" with the Rexx event handler object to handle any events. param rexxEventHandler a Rexx object that handles the events param rexxData an optional Rexx object that will be supplied with each event (last event argument, appended by BSF4ooRexx, which is a Rexx directory object; the "rexxData" object can be retrieved from it using as index the value "USERDATA"; cf. BSF4ooRexx) return an instance of "System.EventHandler", where the rexxEventHandler object will process the events
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: clr.FieldName
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, fieldName
Description: | Returns the mixed case property name matching caselessly the supplied field name in the supplied CLR type. param clrType the CLR type to look for the supplied field name param fieldName the name of the field to look for in the supplied `clrType` return .nil if no field found in the type by the given name (comparisons are caseless) or the correctly spelled field name
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: clr.findAssemblyName
Accessmodifier | PRIVATE
Returns Value | Yes
Options | CLASS
USE strict ARG: | typeName
Description: | Determine and return the assembly name from a fully qualified type name. param typeName fully qualified type name return assembly name where the type gets exported
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: clr.findMatchingEvent
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, eventName
Description: | Returns the mixed case event name matching caselessly the supplied event name in the supplied CLR type. param clrType the CLR type to look for the supplied event name param fieldName the name of the event to look for in the supplied `clrType` return .nil if no event found in the type by the given name (comparisons are caseless) or the correctly spelled event name
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.import
Accessmodifier | PUBLIC
Returns Value | Yes
USE strict ARG: | typeName, rexxName4local=.nil
Description: | Routine to import a CLR/.Net class, the imported class understands the NEW-message. param typeName the fully qualified CLR/.net type name param rexxName4local the name to store in .local, defaults to `.nil`, which inhibits the default entry of the CLR::CLR_IMPORT return a Rexx class object, subclassing CLR_Class, proxying the CLR/.Net type object
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: clr.initAssemblies
Accessmodifier | PRIVATE
Returns Value | No
Description: | Routine that makes sure that the fully qualified names of the exported types defined in the assemblies "mscorlib" and "System" get cached with their assembly names in `.clr.dir~assemblyName`.
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: clr.MethodName
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, methodName
Description: | Returns the mixed case method name matching caselessly the supplied method name in the supplied CLR type. param clrType the CLR type to look for the supplied method name param methodName the name of the method to look for in the supplied `clrType` return .nil if no method found in the type by the given name (comparisons are caseless) or the correctly spelled method name
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: clr.PropertyName
Accessmodifier | PRIVATE
Returns Value | Yes
USE ARG: | clrType, propertyName
Description: | Returns the mixed case property name matching caselessly the supplied property name in the supplied CLR type. param clrType the CLR type to look for the supplied method name param propertyName the name of the property to look for in the supplied `clrType` return .nil if no property found in the type by the given name (comparisons are caseless) or the correctly spelled property name
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.unbox
Accessmodifier | PUBLIC
Returns Value | Yes
Options | CLASS
USE ARG: | clrObject
Description: | Routine to turn values of boxed/wrapped `CLR` primitive types or System.String values to Rexx strings, otherwise returns argument unchanged. param clrObject the CLR object to unbox or to turn into a Rexx string return a Rexx string or the argument unchanged, if `clrObject` does not represent a boxed CLR value or a CLR string
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PUBLIC Routine: clr.wrap
Accessmodifier | PUBLIC
Returns Value | Yes
USE ARG: | value
Description: | Processes received parameter "value" depending on its type. Always returns a CLR. If a CLR object which is a system.Enum, but not an instance of the `CLR_Enum` class, then an instance of `CLR_Enum` will be created and returned using the CLR object's `clr.object` and `clr.type` attributes. If a Rexx string is supplied which can be represented as a number, then a CLR object representing a wrapped system.Int32, system.Int64 or system.Decimal gets returned, depending on the value range. Otherwise a system.String object gets returned If a BSF (Java proxy) object is supplied it will be wrapped either as a `CLR_Enum` or as a `CLR_Proxy` object. param value a CLR, a BSF or a Rexx string object return a CLR object wrapping up the supplied `value`
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls # PRIVATE Routine: pp.line
Accessmodifier | PRIVATE
Returns Value | Yes
use strict arg: | lineNr
Description: | Private utility method to "pretty-print" ooRexx line numbers in debug statements. Intended for taking advantage of the ooRexx class `CLRLogger` in this Rexx package.
### Requires

Package: | BSF.CLS

Package: work/svn/bsf4oorexx/trunk/bsf4oorexx.dev/oorexx.net/src/clr.cls
ooRexxDoc 3.1b, Homepage: ooRexxDoc at sourceforge