1 #include "Palette.hxx"
2 /* Generated by GIWS (version 2.0.2) with command:
3 giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/Palette.giws.xml
4 */
5 /*
6 
7 This is generated code.
8 
9 This software is a computer program whose purpose is to hide the complexity
10 of accessing Java objects/methods from C++ code.
11 
12 Copyright (C) 2012 - 2016 - Scilab Enterprises
13 
14 This file is hereby licensed under the terms of the GNU GPL v2.0,
15 pursuant to article 5.3.4 of the CeCILL v.2.1.
16 This file was originally licensed under the terms of the CeCILL v2.1,
17 and continues to be available under such terms.
18 For more information, see the COPYING file which you should have received
19 along with this program.
20 */
21 
22 namespace org_scilab_modules_xcos_palette {
23 
24                 // Static declarations (if any)
25 
26 // Returns the current env
27 
getCurrentEnv()28 JNIEnv * Palette::getCurrentEnv() {
29 JNIEnv * curEnv = NULL;
30 jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
31 if (res != JNI_OK) {
32 throw GiwsException::JniException(getCurrentEnv());
33 }
34 return curEnv;
35 }
36 // Destructor
37 
~Palette()38 Palette::~Palette() {
39 JNIEnv * curEnv = NULL;
40 this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
41 curEnv->DeleteGlobalRef(this->instance);
42 curEnv->DeleteGlobalRef(this->instanceClass);
43 curEnv->DeleteGlobalRef(this->stringArrayClass);}
44 // Constructors
Palette(JavaVM * jvm_)45 Palette::Palette(JavaVM * jvm_) {
46 jmethodID constructObject = NULL ;
47 jobject localInstance ;
48 jclass localClass ;
49 
50 const std::string construct="<init>";
51 const std::string param="()V";
52 jvm=jvm_;
53 
54 JNIEnv * curEnv = getCurrentEnv();
55 
56 localClass = curEnv->FindClass( this->className().c_str() ) ;
57 if (localClass == NULL) {
58   throw GiwsException::JniClassNotFoundException(curEnv, this->className());
59 }
60 
61 this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
62 
63 /* localClass is not needed anymore */
64 curEnv->DeleteLocalRef(localClass);
65 
66 if (this->instanceClass == NULL) {
67 throw GiwsException::JniObjectCreationException(curEnv, this->className());
68 }
69 
70 
71 constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ;
72 if(constructObject == NULL){
73 throw GiwsException::JniObjectCreationException(curEnv, this->className());
74 }
75 
76 localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ;
77 if(localInstance == NULL){
78 throw GiwsException::JniObjectCreationException(curEnv, this->className());
79 }
80 
81 this->instance = curEnv->NewGlobalRef(localInstance) ;
82 if(this->instance == NULL){
83 throw GiwsException::JniObjectCreationException(curEnv, this->className());
84 }
85 /* localInstance not needed anymore */
86 curEnv->DeleteLocalRef(localInstance);
87 
88                 /* Methods ID set to NULL */
89 voidloadPaljstringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID=NULL;
90 voidloadPaljstringjava_lang_StringID=NULL;
91 voidaddCategoryjobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID=NULL;
92 voidremovejobjectArray_java_lang_Stringjava_lang_StringID=NULL;
93 voidenablejobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID=NULL;
94 voidmovejobjectArray_java_lang_Stringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID=NULL;
95 voidgeneratePaletteIconjlonglongjstringjava_lang_StringID=NULL;
96 voidgetjobjectArray_java_lang_Stringjava_lang_StringID=NULL;
97 
98 
99 }
100 
Palette(JavaVM * jvm_,jobject JObj)101 Palette::Palette(JavaVM * jvm_, jobject JObj) {
102         jvm=jvm_;
103 
104         JNIEnv * curEnv = getCurrentEnv();
105 
106 jclass localClass = curEnv->GetObjectClass(JObj);
107         this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
108         curEnv->DeleteLocalRef(localClass);
109 
110         if (this->instanceClass == NULL) {
111 throw GiwsException::JniObjectCreationException(curEnv, this->className());
112         }
113 
114         this->instance = curEnv->NewGlobalRef(JObj) ;
115         if(this->instance == NULL){
116 throw GiwsException::JniObjectCreationException(curEnv, this->className());
117         }
118         /* Methods ID set to NULL */
119         voidloadPaljstringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID=NULL;
120 voidloadPaljstringjava_lang_StringID=NULL;
121 voidaddCategoryjobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID=NULL;
122 voidremovejobjectArray_java_lang_Stringjava_lang_StringID=NULL;
123 voidenablejobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID=NULL;
124 voidmovejobjectArray_java_lang_Stringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID=NULL;
125 voidgeneratePaletteIconjlonglongjstringjava_lang_StringID=NULL;
126 voidgetjobjectArray_java_lang_Stringjava_lang_StringID=NULL;
127 
128 
129 }
130 
131 // Generic methods
132 
synchronize()133 void Palette::synchronize() {
134 if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) {
135 throw GiwsException::JniMonitorException(getCurrentEnv(), "Palette");
136 }
137 }
138 
endSynchronize()139 void Palette::endSynchronize() {
140 if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) {
141 throw GiwsException::JniMonitorException(getCurrentEnv(), "Palette");
142 }
143 }
144 // Method(s)
145 
loadPal(JavaVM * jvm_,char const * name,char const * const * category,int categorySize)146 void Palette::loadPal (JavaVM * jvm_, char const* name, char const* const* category, int categorySize){
147 
148 JNIEnv * curEnv = NULL;
149 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
150 jclass cls = initClass(curEnv);
151 if ( cls == NULL) {
152 throw GiwsException::JniCallMethodException(curEnv);
153 }
154 
155 static jmethodID voidloadPaljstringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "loadPal", "(Ljava/lang/String;[Ljava/lang/String;)V" ) ;
156 if (voidloadPaljstringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID == NULL) {
157 throw GiwsException::JniMethodNotFoundException(curEnv, "loadPal");
158 }
159 
160 jstring name_ = curEnv->NewStringUTF( name );
161 if (name != NULL && name_ == NULL)
162 {
163 throw GiwsException::JniBadAllocException(curEnv);
164 }
165 
166 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
167 
168 // create java array of strings.
169 jobjectArray category_ = curEnv->NewObjectArray( categorySize, stringArrayClass, NULL);
170 if (category_ == NULL)
171 {
172 throw GiwsException::JniBadAllocException(curEnv);
173 }
174 
175 // convert each char * to java strings and fill the java array.
176 for ( int i = 0; i < categorySize; i++)
177 {
178 jstring TempString = curEnv->NewStringUTF( category[i] );
179 if (TempString == NULL)
180 {
181 throw GiwsException::JniBadAllocException(curEnv);
182 }
183 
184 curEnv->SetObjectArrayElement( category_, i, TempString);
185 
186 // avoid keeping reference on too many strings
187 curEnv->DeleteLocalRef(TempString);
188 }
189                          curEnv->CallStaticVoidMethod(cls, voidloadPaljstringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID ,name_, category_);
190                         curEnv->DeleteLocalRef(stringArrayClass);
191 curEnv->DeleteLocalRef(name_);
192 curEnv->DeleteLocalRef(category_);
193 if (curEnv->ExceptionCheck()) {
194 throw GiwsException::JniCallMethodException(curEnv);
195 }
196 }
197 
loadPal(JavaVM * jvm_,char const * name)198 void Palette::loadPal (JavaVM * jvm_, char const* name){
199 
200 JNIEnv * curEnv = NULL;
201 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
202 jclass cls = initClass(curEnv);
203 if ( cls == NULL) {
204 throw GiwsException::JniCallMethodException(curEnv);
205 }
206 
207 static jmethodID voidloadPaljstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "loadPal", "(Ljava/lang/String;)V" ) ;
208 if (voidloadPaljstringjava_lang_StringID == NULL) {
209 throw GiwsException::JniMethodNotFoundException(curEnv, "loadPal");
210 }
211 
212 jstring name_ = curEnv->NewStringUTF( name );
213 if (name != NULL && name_ == NULL)
214 {
215 throw GiwsException::JniBadAllocException(curEnv);
216 }
217 
218 
219                          curEnv->CallStaticVoidMethod(cls, voidloadPaljstringjava_lang_StringID ,name_);
220                         curEnv->DeleteLocalRef(name_);
221 if (curEnv->ExceptionCheck()) {
222 throw GiwsException::JniCallMethodException(curEnv);
223 }
224 }
225 
addCategory(JavaVM * jvm_,char const * const * name,int nameSize,bool visible)226 void Palette::addCategory (JavaVM * jvm_, char const* const* name, int nameSize, bool visible){
227 
228 JNIEnv * curEnv = NULL;
229 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
230 jclass cls = initClass(curEnv);
231 if ( cls == NULL) {
232 throw GiwsException::JniCallMethodException(curEnv);
233 }
234 
235 static jmethodID voidaddCategoryjobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "addCategory", "([Ljava/lang/String;Z)V" ) ;
236 if (voidaddCategoryjobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID == NULL) {
237 throw GiwsException::JniMethodNotFoundException(curEnv, "addCategory");
238 }
239 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
240 
241 // create java array of strings.
242 jobjectArray name_ = curEnv->NewObjectArray( nameSize, stringArrayClass, NULL);
243 if (name_ == NULL)
244 {
245 throw GiwsException::JniBadAllocException(curEnv);
246 }
247 
248 // convert each char * to java strings and fill the java array.
249 for ( int i = 0; i < nameSize; i++)
250 {
251 jstring TempString = curEnv->NewStringUTF( name[i] );
252 if (TempString == NULL)
253 {
254 throw GiwsException::JniBadAllocException(curEnv);
255 }
256 
257 curEnv->SetObjectArrayElement( name_, i, TempString);
258 
259 // avoid keeping reference on too many strings
260 curEnv->DeleteLocalRef(TempString);
261 }
262 jboolean visible_ = (static_cast<bool>(visible) ? JNI_TRUE : JNI_FALSE);
263 
264                          curEnv->CallStaticVoidMethod(cls, voidaddCategoryjobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID ,name_, visible_);
265                         curEnv->DeleteLocalRef(stringArrayClass);
266 curEnv->DeleteLocalRef(name_);
267 if (curEnv->ExceptionCheck()) {
268 throw GiwsException::JniCallMethodException(curEnv);
269 }
270 }
271 
remove(JavaVM * jvm_,char const * const * name,int nameSize)272 void Palette::remove (JavaVM * jvm_, char const* const* name, int nameSize){
273 
274 JNIEnv * curEnv = NULL;
275 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
276 jclass cls = initClass(curEnv);
277 if ( cls == NULL) {
278 throw GiwsException::JniCallMethodException(curEnv);
279 }
280 
281 static jmethodID voidremovejobjectArray_java_lang_Stringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "remove", "([Ljava/lang/String;)V" ) ;
282 if (voidremovejobjectArray_java_lang_Stringjava_lang_StringID == NULL) {
283 throw GiwsException::JniMethodNotFoundException(curEnv, "remove");
284 }
285 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
286 
287 // create java array of strings.
288 jobjectArray name_ = curEnv->NewObjectArray( nameSize, stringArrayClass, NULL);
289 if (name_ == NULL)
290 {
291 throw GiwsException::JniBadAllocException(curEnv);
292 }
293 
294 // convert each char * to java strings and fill the java array.
295 for ( int i = 0; i < nameSize; i++)
296 {
297 jstring TempString = curEnv->NewStringUTF( name[i] );
298 if (TempString == NULL)
299 {
300 throw GiwsException::JniBadAllocException(curEnv);
301 }
302 
303 curEnv->SetObjectArrayElement( name_, i, TempString);
304 
305 // avoid keeping reference on too many strings
306 curEnv->DeleteLocalRef(TempString);
307 }
308                          curEnv->CallStaticVoidMethod(cls, voidremovejobjectArray_java_lang_Stringjava_lang_StringID ,name_);
309                         curEnv->DeleteLocalRef(stringArrayClass);
310 curEnv->DeleteLocalRef(name_);
311 if (curEnv->ExceptionCheck()) {
312 throw GiwsException::JniCallMethodException(curEnv);
313 }
314 }
315 
enable(JavaVM * jvm_,char const * const * name,int nameSize,bool status)316 void Palette::enable (JavaVM * jvm_, char const* const* name, int nameSize, bool status){
317 
318 JNIEnv * curEnv = NULL;
319 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
320 jclass cls = initClass(curEnv);
321 if ( cls == NULL) {
322 throw GiwsException::JniCallMethodException(curEnv);
323 }
324 
325 static jmethodID voidenablejobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "enable", "([Ljava/lang/String;Z)V" ) ;
326 if (voidenablejobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID == NULL) {
327 throw GiwsException::JniMethodNotFoundException(curEnv, "enable");
328 }
329 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
330 
331 // create java array of strings.
332 jobjectArray name_ = curEnv->NewObjectArray( nameSize, stringArrayClass, NULL);
333 if (name_ == NULL)
334 {
335 throw GiwsException::JniBadAllocException(curEnv);
336 }
337 
338 // convert each char * to java strings and fill the java array.
339 for ( int i = 0; i < nameSize; i++)
340 {
341 jstring TempString = curEnv->NewStringUTF( name[i] );
342 if (TempString == NULL)
343 {
344 throw GiwsException::JniBadAllocException(curEnv);
345 }
346 
347 curEnv->SetObjectArrayElement( name_, i, TempString);
348 
349 // avoid keeping reference on too many strings
350 curEnv->DeleteLocalRef(TempString);
351 }
352 jboolean status_ = (static_cast<bool>(status) ? JNI_TRUE : JNI_FALSE);
353 
354                          curEnv->CallStaticVoidMethod(cls, voidenablejobjectArray_java_lang_Stringjava_lang_StringjbooleanbooleanID ,name_, status_);
355                         curEnv->DeleteLocalRef(stringArrayClass);
356 curEnv->DeleteLocalRef(name_);
357 if (curEnv->ExceptionCheck()) {
358 throw GiwsException::JniCallMethodException(curEnv);
359 }
360 }
361 
move(JavaVM * jvm_,char const * const * source,int sourceSize,char const * const * target,int targetSize)362 void Palette::move (JavaVM * jvm_, char const* const* source, int sourceSize, char const* const* target, int targetSize){
363 
364 JNIEnv * curEnv = NULL;
365 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
366 jclass cls = initClass(curEnv);
367 if ( cls == NULL) {
368 throw GiwsException::JniCallMethodException(curEnv);
369 }
370 
371 static jmethodID voidmovejobjectArray_java_lang_Stringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "move", "([Ljava/lang/String;[Ljava/lang/String;)V" ) ;
372 if (voidmovejobjectArray_java_lang_Stringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID == NULL) {
373 throw GiwsException::JniMethodNotFoundException(curEnv, "move");
374 }
375 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
376 
377 // create java array of strings.
378 jobjectArray source_ = curEnv->NewObjectArray( sourceSize, stringArrayClass, NULL);
379 if (source_ == NULL)
380 {
381 throw GiwsException::JniBadAllocException(curEnv);
382 }
383 
384 // convert each char * to java strings and fill the java array.
385 for ( int i = 0; i < sourceSize; i++)
386 {
387 jstring TempString = curEnv->NewStringUTF( source[i] );
388 if (TempString == NULL)
389 {
390 throw GiwsException::JniBadAllocException(curEnv);
391 }
392 
393 curEnv->SetObjectArrayElement( source_, i, TempString);
394 
395 // avoid keeping reference on too many strings
396 curEnv->DeleteLocalRef(TempString);
397 }
398 
399 // create java array of strings.
400 jobjectArray target_ = curEnv->NewObjectArray( targetSize, stringArrayClass, NULL);
401 if (target_ == NULL)
402 {
403 throw GiwsException::JniBadAllocException(curEnv);
404 }
405 
406 // convert each char * to java strings and fill the java array.
407 for ( int i = 0; i < targetSize; i++)
408 {
409 jstring TempString = curEnv->NewStringUTF( target[i] );
410 if (TempString == NULL)
411 {
412 throw GiwsException::JniBadAllocException(curEnv);
413 }
414 
415 curEnv->SetObjectArrayElement( target_, i, TempString);
416 
417 // avoid keeping reference on too many strings
418 curEnv->DeleteLocalRef(TempString);
419 }
420                          curEnv->CallStaticVoidMethod(cls, voidmovejobjectArray_java_lang_Stringjava_lang_StringjobjectArray_java_lang_Stringjava_lang_StringID ,source_, target_);
421                         curEnv->DeleteLocalRef(stringArrayClass);
422 curEnv->DeleteLocalRef(source_);
423 curEnv->DeleteLocalRef(target_);
424 if (curEnv->ExceptionCheck()) {
425 throw GiwsException::JniCallMethodException(curEnv);
426 }
427 }
428 
generatePaletteIcon(JavaVM * jvm_,long long uid,char const * iconPath)429 void Palette::generatePaletteIcon (JavaVM * jvm_, long long uid, char const* iconPath){
430 
431 JNIEnv * curEnv = NULL;
432 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
433 jclass cls = initClass(curEnv);
434 if ( cls == NULL) {
435 throw GiwsException::JniCallMethodException(curEnv);
436 }
437 
438 static jmethodID voidgeneratePaletteIconjlonglongjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "generatePaletteIcon", "(JLjava/lang/String;)V" ) ;
439 if (voidgeneratePaletteIconjlonglongjstringjava_lang_StringID == NULL) {
440 throw GiwsException::JniMethodNotFoundException(curEnv, "generatePaletteIcon");
441 }
442 
443 jstring iconPath_ = curEnv->NewStringUTF( iconPath );
444 if (iconPath != NULL && iconPath_ == NULL)
445 {
446 throw GiwsException::JniBadAllocException(curEnv);
447 }
448 
449 
450                          curEnv->CallStaticVoidMethod(cls, voidgeneratePaletteIconjlonglongjstringjava_lang_StringID ,uid, iconPath_);
451                         curEnv->DeleteLocalRef(iconPath_);
452 if (curEnv->ExceptionCheck()) {
453 throw GiwsException::JniCallMethodException(curEnv);
454 }
455 }
456 
get(JavaVM * jvm_,char const * const * path,int pathSize)457 void Palette::get (JavaVM * jvm_, char const* const* path, int pathSize){
458 
459 JNIEnv * curEnv = NULL;
460 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
461 jclass cls = initClass(curEnv);
462 if ( cls == NULL) {
463 throw GiwsException::JniCallMethodException(curEnv);
464 }
465 
466 static jmethodID voidgetjobjectArray_java_lang_Stringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "get", "([Ljava/lang/String;)V" ) ;
467 if (voidgetjobjectArray_java_lang_Stringjava_lang_StringID == NULL) {
468 throw GiwsException::JniMethodNotFoundException(curEnv, "get");
469 }
470 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
471 
472 // create java array of strings.
473 jobjectArray path_ = curEnv->NewObjectArray( pathSize, stringArrayClass, NULL);
474 if (path_ == NULL)
475 {
476 throw GiwsException::JniBadAllocException(curEnv);
477 }
478 
479 // convert each char * to java strings and fill the java array.
480 for ( int i = 0; i < pathSize; i++)
481 {
482 jstring TempString = curEnv->NewStringUTF( path[i] );
483 if (TempString == NULL)
484 {
485 throw GiwsException::JniBadAllocException(curEnv);
486 }
487 
488 curEnv->SetObjectArrayElement( path_, i, TempString);
489 
490 // avoid keeping reference on too many strings
491 curEnv->DeleteLocalRef(TempString);
492 }
493                          curEnv->CallStaticVoidMethod(cls, voidgetjobjectArray_java_lang_Stringjava_lang_StringID ,path_);
494                         curEnv->DeleteLocalRef(stringArrayClass);
495 curEnv->DeleteLocalRef(path_);
496 if (curEnv->ExceptionCheck()) {
497 throw GiwsException::JniCallMethodException(curEnv);
498 }
499 }
500 
501 }
502