Skip to content

Commit 59d0c42

Browse files
committed
added unit test for instanceOf and updated readme
1 parent f65dbf6 commit 59d0c42

4 files changed

Lines changed: 30 additions & 3 deletions

File tree

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ try {
121121
* [options](#javaOptions)
122122
* [import](#javaImport)
123123
* [newInstance](#javaNewInstance)
124+
* [instanceOf](#javaInstanceOf)
124125
* [callStaticMethod](#javaCallStaticMethod)
125126
* [getStaticFieldValue](#javaGetStaticFieldValue)
126127
* [setStaticFieldValue](#javaSetStaticFieldValue)
@@ -203,6 +204,24 @@ __Example__
203204
// new list
204205
});
205206
207+
<a name="javaInstanceOf" />
208+
**java.instanceOf(javaObject, className)**
209+
210+
Determines of a javaObject is an instance of a class.
211+
212+
__Arguments__
213+
214+
* javaObject - Instance of a java object returned from a method or from newInstance.
215+
* className - A string class name.
216+
217+
__Example__
218+
219+
var obj = java.newInstanceSync("my.package.SubClass");
220+
221+
if(java.instanceOf(obj, "my.package.SuperClass")) {
222+
console.log("obj is an instance of SuperClass");
223+
}
224+
206225
<a name="javaCallStaticMethod" />
207226
**java.callStaticMethod(className, methodName, [args...], callback)**
208227

src/java.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ long my_getThreadId() {
5858
NODE_SET_PROTOTYPE_METHOD(s_ct, "newFloat", newFloat);
5959
NODE_SET_PROTOTYPE_METHOD(s_ct, "getStaticFieldValue", getStaticFieldValue);
6060
NODE_SET_PROTOTYPE_METHOD(s_ct, "setStaticFieldValue", setStaticFieldValue);
61-
NODE_SET_PROTOTYPE_METHOD(s_ct, "instanceof", instanceof);
61+
NODE_SET_PROTOTYPE_METHOD(s_ct, "instanceOf", instanceOf);
6262

6363
target->Set(v8::String::NewSymbol("Java"), s_ct->GetFunction());
6464
}
@@ -823,7 +823,7 @@ void Java::destroyJVM(JavaVM** jvm, JNIEnv** env) {
823823
return v8::Undefined();
824824
}
825825

826-
/*static*/ v8::Handle<v8::Value> Java::instanceof(const v8::Arguments& args) {
826+
/*static*/ v8::Handle<v8::Value> Java::instanceOf(const v8::Arguments& args) {
827827
v8::HandleScope scope;
828828
Java* self = node::ObjectWrap::Unwrap<Java>(args.This());
829829
v8::Handle<v8::Value> ensureJvmResults = self->ensureJvm();

src/java.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class Java : public node::ObjectWrap {
3636
static v8::Handle<v8::Value> newFloat(const v8::Arguments& args);
3737
static v8::Handle<v8::Value> getStaticFieldValue(const v8::Arguments& args);
3838
static v8::Handle<v8::Value> setStaticFieldValue(const v8::Arguments& args);
39-
static v8::Handle<v8::Value> instanceof(const v8::Arguments& args);
39+
static v8::Handle<v8::Value> instanceOf(const v8::Arguments& args);
4040
static v8::Handle<v8::Value> AccessorProhibitsOverwritingGetter(v8::Local<v8::String> name, const v8::AccessorInfo &info);
4141
static void AccessorProhibitsOverwritingSetter(v8::Local<v8::String> property, v8::Local<v8::Value> value, const v8::AccessorInfo &info);
4242
v8::Handle<v8::Value> ensureJvm();

test/simple-test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,14 @@ exports['Simple'] = nodeunit.testCase({
260260
test.equal(r[0], 1);
261261
test.equal(r[1], 2);
262262
test.done();
263+
},
264+
265+
"instanceof test": function(test) {
266+
var subclass = java.newInstanceSync("Test$SubClass");
267+
if(!java.instanceOf(subclass, "Test$SuperClass")) {
268+
test.fail(subclass.getNameSync() + " should be an instance of Test$SuperClass");
269+
}
270+
test.done();
263271
}
264272

265273
});

0 commit comments

Comments
 (0)