27 #include "../../../../common/Exception.h" 28 #include "../../../../core/translator/Translator.h" 29 #include "../../../../dataaccess/datasource/DataSourceManager.h" 30 #include "../../common/Utils.h" 34 #include <boost/cstdint.hpp> 40 if((args.Length() != 2) || args[0].IsEmpty() || !args[0]->IsString() || args[1].IsEmpty() || !args[1]->IsString())
41 return ::v8::ThrowException(::v8::String::New(
"In order to use the DataSourceManager make method you must use object notation: \"ds = TeDataSourceManager.make(\"id1\", \"POSTGIS\");\""));
43 v8::String::Utf8Value jid(args[0]->
ToString());
44 v8::String::Utf8Value jdstype(args[1]->
ToString());
52 catch(
const std::exception& e)
54 return ::v8::ThrowException(::v8::String::New(e.what()));
58 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"Unexpected exception in make method!")));
66 if(args.Length() != 3)
67 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"Wrong number of parameters for open method!")));
69 if(args[0].IsEmpty() || !args[0]->IsString() || args[1].IsEmpty() || !args[1]->IsString() || args[2].IsEmpty())
70 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"Wrong parameters type for open method!")));
72 v8::String::Utf8Value jid(args[0]->
ToString());
73 v8::String::Utf8Value jdstype(args[1]->
ToString());
77 if(args[2]->IsString())
79 v8::String::Utf8Value jconninfo(args[2]->
ToString());
84 else if(args[2]->IsArray())
86 ::v8::Local<::v8::Object> aconninfo = args[2]->ToObject();
87 std::map<std::string, std::string> conninfo;
96 catch(
const std::exception& e)
98 return ::v8::ThrowException(::v8::String::New(e.what()));
102 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"Unexpected exception in open method!")));
108 ::v8::HandleScope hs;
110 ::v8::Local<::v8::Integer> jsize = ::v8::Integer::New(static_cast<boost::int32_t>(size));
111 return hs.Close(jsize);
116 ::v8::HandleScope hs;
118 if(args.Length() != 1 || args[0].IsEmpty())
119 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"In order to use the find method, you must use the object notation: \"ds = obj.find(\"ds1_id1\");\"")));
121 if(args[0]->IsString())
123 v8::String::Utf8Value jid(args[0]->
ToString());
126 return hs.Close(jds);
128 else if(args[0]->IsObject())
132 ::v8::Local<::v8::String> jid = ::v8::String::New(
id.c_str());
133 return hs.Close(jid);
136 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"Invalid parameter type in find method!")));
141 ::v8::HandleScope hs;
142 return ::v8::Undefined();
147 ::v8::HandleScope hs;
166 return ::v8::ThrowException(::v8::String::New(
TR_V8JSI(
"Invalid parameter type in the detach method!")));
171 ::v8::HandleScope hs;
173 return ::v8::Undefined();
178 ::v8::HandleScope hs;
199 return ::v8::ThrowException(::v8::String::New(
"Invalid parameter type in the remove method!"));
204 ::v8::HandleScope hs;
211 return ::v8::Undefined();
216 ::v8::HandleScope hs;
217 return ::v8::Undefined();
222 ::v8::HandleScope hs;
223 return ::v8::Undefined();
228 ::v8::HandleScope hs;
229 return ::v8::Undefined();
234 ::v8::HandleScope hs;
236 ::v8::Handle<::v8::ObjectTemplate> objTpl = ::v8::ObjectTemplate::New();
251 global->Set(::v8::String::New(
"TeDataSourceManager"), objTpl->NewInstance());
::v8::Local<::v8::Object > Make(T *obj, TF tfunc, const bool isOwner)
It creates a new JavaScript object from a C++ object (obj).
::v8::Handle<::v8::Value > DataSourceManager_DetachAll(const ::v8::Arguments &)
::v8::Handle<::v8::Value > DataSourceManager_Insert(const ::v8::Arguments &)
JavaScript exporting routine for the TerraLib Data Access module.
::v8::Handle<::v8::Value > DataSourceManager_Remove(const ::v8::Arguments &)
static te::dt::Date ds(2010, 01, 01)
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
::v8::Persistent<::v8::FunctionTemplate > & GetDataSourceTemplate()
It returns a reference to the persistent template of a DataSource object.
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
::v8::Handle<::v8::Value > DataSourceManager_Open(const ::v8::Arguments &args)
void Convert2Cpp(const ::v8::Local<::v8::Object > &jsmap, std::map< std::string, std::string > &cppmap)
It converts the input map to an object representing the associative conteiner.
::v8::Handle<::v8::Value > DataSourceManager_RemoveAll(const ::v8::Arguments &)
::v8::Handle<::v8::Value > DataSourceManager_Size(const ::v8::Arguments &args)
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
::v8::Handle<::v8::Value > DataSourceManager_Find(const ::v8::Arguments &args)
::v8::Handle<::v8::Value > DataSourceManager_Make(const ::v8::Arguments &args)
::v8::Handle<::v8::Value > DataSourceManager_Detach(const ::v8::Arguments &)
::v8::Handle<::v8::Value > DataSourceManager_GetOpenedList(const ::v8::Arguments &)
void RegisterDataSourceManager(::v8::Local<::v8::Object > &global)
It registers the GeometryFactory class.
::v8::Handle<::v8::Value > DataSourceManager_End(const ::v8::Arguments &)
#define TR_V8JSI(message)
It marks a string in order to get translated. This is a special mark used in the Vector Geometry modu...
std::string ToString(const XMLCh *const value)
It converts the XML string to a standard C++ string.
::v8::Handle<::v8::Value > DataSourceManager_Begin(const ::v8::Arguments &)