APIs for Java Developers
Go to APIs for .NET Developers (coming soon)Class NObject
- java.lang.Object
-
- com.javonet.api.NObject
-
public class NObject extends java.lang.Object
A class that represents any object created on .NET side. Each instance of this object holds handle to associated .NET object.While creating new .NET object in your JAVA code you can hold this object in NObject variable.
NObject exposes all methods to operate on .NET objects like: methods invoking, getting/setting
fields and properties, subscribing/unsubscribing events and disposing.Usage
Use NObject type as it was any .NET object.
NObject is initialized by:
- calling
Javonet.New(java.lang.String fullTypeName)
NObject objRandom = Javonet.New("System.Random");
-
extending and calling base constructor with full name of .NET type:
class JavaSubClassForDotNetObject extends NObject { public JavaSubClassForDotNetObject() { super("System.Windows.Forms.Form"); } }
NObject is wired to single instance of .NET side object and it’s life-cycle is reflected in
CLR. When NObject is disposed in JAVA either by calling destructor or by garbage collector
associated .NET object is disposed as well.Invocation chaining
Methods in this class that do not otherwise have a value to return are specified to return the NObject upon
which they are invoked. This allows method invocations to be chained; for example the sequence of statements
b.set("Field1",0); b.set("Field2",10); b.set("Field3","String Value");
can be replaced by the single, more compact statement
b.set("Field1",0).set("Field2",10).set("Field3","String Value");
- Since:
- 1.0
- Version:
- 1.4hf14
- calling
-
Constructor Summary
Constructors Constructor and Description NObject(com.javonet.internal.IGateway gatewayManager,
java.lang.String oid)Internal constructor initializes new instance of NObject connected to specified
gateway session and associated to object with specified unique identifier.NObject(com.javonet.internal.IGateway gatewayManager,
java.lang.String oid,
java.lang.Boolean delayDispose)
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description void
addEventListener(java.lang.String eventName,
INEventListener eventListener)Adds event listener for any .NET event on associated .NET object.void
addEventListener(java.lang.String eventName,
INEventWithResultListener eventListener)Adds event with result listener for any .NET event on associated .NET object.NGenericMethod
generic(NType... genericTypes)
Initializes generic method invocation.<T> T
get(java.lang.String fieldName)
Returns value of static/instance field or property of .NET object.<T> T
getIndex(java.lang.Object index)
Returns indexed value of current object at specified index position.NObject
getIndexRef(java.lang.Object index)
Returns referenced indexed value of current object at specified index position.java.lang.String
getOid()
Returns unique identifier of associated object initialized on .NET side.NObject
getRef(java.lang.String fieldName)
Returns value of static/instance field or property of .NET object which return value is another .NET object.static boolean
hasEvents(java.lang.String oid)
For internal usage only.<T> T
invoke(java.lang.String methodName)
Invokes any parameter-less method on associated .NET object and returns result.<T> T
invoke(java.lang.String methodName,
java.lang.Object... parameters)Invokes any method with parameters on associated .NET object and returns result.static void
raiseEvent(java.lang.String oid,
java.lang.String eventName,
java.lang.Object[] arguments)Internal method used to receive signals about events raised on .NET side.static java.lang.Object
raiseEventWithResult(java.lang.String oid,
java.lang.String eventName,
java.lang.Object[] arguments)Internal method used to receive signals about events raised on .NET side.void
releaseEventsSubscriptions()
Only for internal usage.void
removeEventListener(java.lang.String eventName,
INEventListener eventListener)Removes event listener assignment from specified event.void
removeEventListener(java.lang.String eventName,
INEventWithResultListener eventListener)Removes event with result listener assignment from specified event.NObject
set(java.lang.String fieldName,
java.lang.Object fieldValue)Sets value for any static or instance field and property
on associated .NET object.<T extends NObject>
TsetIndex(java.lang.Object index,
java.lang.Object fieldValue)Sets value for indexed property at specified key
on associated .NET object.
-
Constructor Detail
-
NObject
public NObject(com.javonet.internal.IGateway gatewayManager, java.lang.String oid)
Internal constructor initializes new instance of NObject connected to specified
gateway session and associated to object with specified unique identifier.This constructor should not be used in regular implementation. Instead use New method on Javonet class.
- Parameters:
gatewayManager
– Gateway session to be usedoid
– Unique identifier of associated .NET object- See Also:
Javonet.New(String)
,
Javonet.New(String, Object...)
-
NObject
public NObject(com.javonet.internal.IGateway gatewayManager, java.lang.String oid, java.lang.Boolean delayDispose)
-
Method Detail
-
addEventListener
public void addEventListener(java.lang.String eventName, INEventListener eventListener) throws JavonetException
Adds event listener for any .NET event on associated .NET object.When event is raised on .NET side, invocation will be automatically passed to JAVA and all
assigned event listeners will be informed.- Parameters:
eventName
– Name of the event for which listener should be attachedeventListener
– Event listener instance, anonymous class or class inheriting from INEventListener that will be informed when event is raised- Throws:
JavonetException
– If .NET exception occurs while attaching event
-
addEventListener
public void addEventListener(java.lang.String eventName, INEventWithResultListener eventListener) throws JavonetException
Adds event with result listener for any .NET event on associated .NET object.When event is raised on .NET side, invocation will be automatically passed to JAVA and all
assigned event listeners will be informed.- Parameters:
eventName
– Name of the event for which listener should be attachedeventListener
– Event listener instance, anonymous class or class inheriting from INEventListener that will be informed when event is raised- Throws:
JavonetException
– If .NET exception occurs while attaching event
-
generic
public NGenericMethod generic(NType... genericTypes)
Initializes generic method invocation. Following invocation on returned object
should call invoke(methodName) or invoke(methodName,parameters) to perform generic
invocation on .NET method.Sample usage
To call (.NET): obj.MyMethod<String>(arg1);
Use following instruction (JAVA): obj.generic(NType(“String”)).invoke(“MyMethod”,arg1);
- Parameters:
genericTypes
– List of NType objects attached to .NET types to be used as generic arguments- Returns:
- Generic method execution instance. Before method is executed following invoke method must be called on this object.
-
get
public <T> T get(java.lang.String fieldName) throws JavonetException
Returns value of static/instance field or property of .NET object.If result is another .NET object a new instance of NObject class will be returned.
- Type Parameters:
T
– JAVA type to which the value returned from .NET field or property will be casted. Provide either JAVA value type like: integer, string, boolean or for reference type results please use NObject- Parameters:
fieldName
– Name of the field or property which value needs to be retrieved- Returns:
- Value of field or property retrieved from associated .NET object
- Throws:
JavonetException
– If .NET exception occurs within corresponding getter on .NET side
-
getIndex
public <T> T getIndex(java.lang.Object index) throws JavonetException
Returns indexed value of current object at specified index position.
This method is equivalent of calling on .NET side following instruction:
– SampleObject[index];
– SampleObject[“textIndex”];
– SampleObject[anotherDotNetObject];If result is another .NET object a new instance of NObject class will be returned.
- Type Parameters:
T
– JAVA type to which the value returned from indexed .NET field or property will be casted. Provide either JAVA value type like: integer, string, boolean or for reference type results please use NObject- Parameters:
index
– Index position to be retrieved- Returns:
- Value of item stored at specified index, retrieved from associated .NET object
- Throws:
JavonetException
– If .NET exception occurs within corresponding getter on .NET side- Since:
- 1.1
-
getIndexRef
public NObject getIndexRef(java.lang.Object index) throws JavonetException
Returns referenced indexed value of current object at specified index position.
This method is equivalent of calling on .NET side following instruction:
– SampleObject[index];
– SampleObject[“textIndex”];
– SampleObject[anotherDotNetObject];This method assumes that item stored at selected position is instance of another .NET object
and automatically returns NObject handle for that object.- Parameters:
index
– Index position to be retrieved- Returns:
- NObject instance attached to item stored at specified index, retrieved from associated .NET object
- Throws:
JavonetException
– If .NET exception occurs within corresponding getter on .NET side- Since:
- 1.1
-
getOid
public java.lang.String getOid()
Returns unique identifier of associated object initialized on .NET side.
Type of that objects is specified during initialization of NObject class.- Returns:
- Unique identifier of corresponding .NET object instance
-
getRef
public NObject getRef(java.lang.String fieldName) throws JavonetException
Returns value of static/instance field or property of .NET object which return value is another .NET object.This method should be used to simplify get calls for properties/fields with reference result.
Result is an instance of new NObject class associated to returned .NET object.
Alternatively generic
T get
with NObject type might be usedb.<NObject>get("Controls");
- Parameters:
fieldName
– Name of the field or property which value needs to be retrieved- Returns:
- NObject instance associated to .NET class returned by specified field or property
- Throws:
JavonetException
– If .NET exception occurs within corresponding getter on .NET side
-
hasEvents
public static boolean hasEvents(java.lang.String oid)
For internal usage only. Returns true or false if there are any event listeners subscribed to events
of .NET object associated with this NObject instance- Parameters:
oid
– object OID.- Returns:
- true or false indicating if any listeners are registered.
- Since:
- 1.5
-
invoke
public <T> T invoke(java.lang.String methodName) throws JavonetException
Invokes any parameter-less method on associated .NET object and returns result.For primitive-type results appropriate Java primitive type will be returned (string, integer, float…)
If reference-type results instance of another NObject will be returned associated to returned .NET object.
For void results NULL will be returned.
- Type Parameters:
T
– Java type to which the result returned by invoked method will be casted. Provide either Java value type like: integer, string, boolean or for reference type results please use NObject- Parameters:
methodName
– Name of the method to be invoked- Returns:
- Result of method invocation. It can be JAVA primitive type (string, integer, float) or instance of another NObject
- Throws:
JavonetException
– If .NET exception occurs during method invocation- See Also:
invoke(String, Object...)
-
invoke
public <T> T invoke(java.lang.String methodName, java.lang.Object... parameters) throws JavonetException
Invokes any method with parameters on associated .NET object and returns result.Parameters can be specified as any Java primitive type or instance of another NObject to pass reference to another .NET object.
For primitive-type results appropriate Java primitive type will be returned (String, Integer, Float…)
If reference-type results instance of another NObject will be returned associated to returned .NET object.
For void results NULL will be returned.
- Type Parameters:
T
– Java type to which the result returned by invoked method will be casted. Provide either Java value type like: integer, string, boolean or for reference type results please use NObject- Parameters:
methodName
– Name of the method to be invokedparameters
– Input parameters for method to be invoked. It can be JAVA primitive types or NObject to pass .NET reference- Returns:
- Result of method invocation. It can be JAVA primitive type (string, integer, float) or instance of another NObject
- Throws:
JavonetException
– If .NET exception occurs during method invocation
-
raiseEvent
public static void raiseEvent(java.lang.String oid, java.lang.String eventName, java.lang.Object[] arguments)
Internal method used to receive signals about events raised on .NET side.This method should not be used in regular implementations.
- Parameters:
eventName
– Name of the eventarguments
– Event arguments- Throws:
JavonetException
-
raiseEventWithResult
public static java.lang.Object raiseEventWithResult(java.lang.String oid, java.lang.String eventName, java.lang.Object[] arguments)
Internal method used to receive signals about events raised on .NET side.This method should not be used in regular implementations.
- Parameters:
eventName
– Name of the eventarguments
– Event arguments- Returns:
- event invocation result
-
releaseEventsSubscriptions
public void releaseEventsSubscriptions()
Only for internal usage. This method release all Java events listeners subscription for .NET object associated with this NObject instance.- Since:
- 1.5
-
removeEventListener
public void removeEventListener(java.lang.String eventName, INEventListener eventListener) throws JavonetException
Removes event listener assignment from specified event.- Parameters:
eventName
– Name of the event from which listener should be removedeventListener
– Event listener instance, anonymous class or class inheriting from INEventListener- Throws:
JavonetException
– If .NET exception occurs while detaching event
-
removeEventListener
public void removeEventListener(java.lang.String eventName, INEventWithResultListener eventListener) throws JavonetException
Removes event with result listener assignment from specified event.- Parameters:
eventName
– Name of the event from which listener should be removedeventListener
– Event listener instance, anonymous class or class inheriting from INEventListener- Throws:
JavonetException
– If .NET exception occurs while detaching event
-
set
public NObject set(java.lang.String fieldName, java.lang.Object fieldValue) throws JavonetException
Sets value for any static or instance field and property
on associated .NET object.Value can be specified as any JAVA primitive type (integer, string, float etc…)
or as NObject instance to pass reference to another instance of initialized .NET object.- Parameters:
fieldName
– Name of the instance or static field or propertyfieldValue
– Value to be set on selected field or property. Value can be any JAVA primitive type or instance of NObject to pass reference-type- Returns:
- Instance of NObject upon which method is invoked. This allows method invocations to be chained on that object; for example
b.set("Field1",0).set("Field2",10).set("Field3","String Value");
- Throws:
JavonetException
– If .NET exception occurs within corresponding setter on .NET side
-
setIndex
public <T extends NObject> T setIndex(java.lang.Object index, java.lang.Object fieldValue) throws JavonetException
Sets value for indexed property at specified key
on associated .NET object.Value and index can be specified as any JAVA primitive type (integer, string, float etc…)
or as NObject instance to pass reference to another instance of initialized .NET object.This method is equivalent of calling on .NET side following instruction:
– SampleObject[index]=”new value”;
– SampleObject[“textIndex”]=newValueVar;
– SampleObject[anotherDotNetObject]=5;- Type Parameters:
T
– type of the object on which thesetIndex(Object, Object)
method is called. It must be eitherNObject
or class derived fromNObject
. Allows further methods chaining.- Parameters:
index
– Index position to be updatedfieldValue
– Value to be set on selected field or property. Value can be any JAVA primitive type or instance of NObject to pass reference-type- Returns:
- Instance of NObject upon which method is invoked. This allows method invocations to be chained on that object; for example
b.setIndex("key","value").setIndex("key2","value2");
- Throws:
JavonetException
– If .NET exception occurs within corresponding setter on .NET side- Since:
- 1.4hf6
-