#ifndef _javaobject_h_
#define _javaobject_h_
#include
#include "methodCallBaton.h"
class Java;
class JavaObject : public node::ObjectWrap {
public:
static void Init(v8::Handle<:object> target);
static v8::Local<:object> New(Java* java, jobject obj);
jobject getObject() { return m_obj; }
void Ref() { node::ObjectWrap::Ref(); }
void Unref() { node::ObjectWrap::Unref(); }
private:
JavaObject(Java* java, jobject obj);
~JavaObject();
static v8::Handle<:value> methodCall(const v8::Arguments& args);
static v8::Handle<:value> methodCallSync(const v8::Arguments& args);
static v8::Handle<:value> fieldGetter(v8::Local<:string> property, const v8::AccessorInfo& info);
static void fieldSetter(v8::Local<:string> property, v8::Local<:value> value, const v8::AccessorInfo& info);
static v8::Persistent<:functiontemplate> s_ct;
Java* m_java;
jobject m_obj;
jclass m_class;
std::list