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