#ifndef _javaobject_h_
#define _javaobject_h_
#include
#include
#include
#include
#include "methodCallBaton.h"
class Java;
class JavaObject : public node::ObjectWrap {
public:
static void Init(v8::Handle target);
static v8::Local 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 methodCall(const v8::Arguments& args);
static v8::Handle methodCallSync(const v8::Arguments& args);
static v8::Handle fieldGetter(v8::Local property, const v8::AccessorInfo& info);
static void fieldSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info);
static v8::Persistent s_ct;
Java* m_java;
jobject m_obj;
jclass m_class;
std::list m_fields;
};
#endif