ee6b79ae6c2d9e23b3a318e25044d95f6229d81b
[scilab.git] / scilab / modules / preferences / src / jni / ScilabPreferences.cpp
1 #include "ScilabPreferences.hxx"
2 /* Generated by GIWS (version 2.0.1) with command:
3 giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/ScilabPreferences.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 This software is governed by the CeCILL-B license under French law and
13 abiding by the rules of distribution of free software.  You can  use, 
14 modify and/ or redistribute the software under the terms of the CeCILL-B
15 license as circulated by CEA, CNRS and INRIA at the following URL
16 "http://www.cecill.info". 
17
18 As a counterpart to the access to the source code and  rights to copy,
19 modify and redistribute granted by the license, users are provided only
20 with a limited warranty  and the software's author,  the holder of the
21 economic rights,  and the successive licensors  have only  limited
22 liability. 
23
24 In this respect, the user's attention is drawn to the risks associated
25 with loading,  using,  modifying and/or developing or reproducing the
26 software by the user in light of its specific status of free software,
27 that may mean  that it is complicated to manipulate,  and  that  also
28 therefore means  that it is reserved for developers  and  experienced
29 professionals having in-depth computer knowledge. Users are therefore
30 encouraged to load and test the software's suitability as regards their
31 requirements in conditions enabling the security of their systems and/or 
32 data to be ensured and,  more generally, to use and operate it in the 
33 same conditions as regards security. 
34
35 The fact that you are presently reading this means that you have had
36 knowledge of the CeCILL-B license and that you accept its terms.
37 */
38
39 namespace org_scilab_modules_preferences {
40
41                 // Static declarations (if any)
42                 
43 // Returns the current env
44
45 JNIEnv * ScilabPreferences::getCurrentEnv() {
46 JNIEnv * curEnv = NULL;
47 jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
48 if (res != JNI_OK) {
49 throw GiwsException::JniException(getCurrentEnv());
50 }
51 return curEnv;
52 }
53 // Destructor
54
55 ScilabPreferences::~ScilabPreferences() {
56 JNIEnv * curEnv = NULL;
57 this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
58
59 curEnv->DeleteGlobalRef(this->instance);
60 curEnv->DeleteGlobalRef(this->instanceClass);
61 }
62 // Constructors
63 ScilabPreferences::ScilabPreferences(JavaVM * jvm_) {
64 jmethodID constructObject = NULL ;
65 jobject localInstance ;
66 jclass localClass ;
67
68 const std::string construct="<init>";
69 const std::string param="()V";
70 jvm=jvm_;
71
72 JNIEnv * curEnv = getCurrentEnv();
73
74 localClass = curEnv->FindClass( this->className().c_str() ) ;
75 if (localClass == NULL) {
76   throw GiwsException::JniClassNotFoundException(curEnv, this->className());
77 }
78
79 this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
80
81 /* localClass is not needed anymore */
82 curEnv->DeleteLocalRef(localClass);
83
84 if (this->instanceClass == NULL) {
85 throw GiwsException::JniObjectCreationException(curEnv, this->className());
86 }
87
88
89 constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ;
90 if(constructObject == NULL){
91 throw GiwsException::JniObjectCreationException(curEnv, this->className());
92 }
93
94 localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ;
95 if(localInstance == NULL){
96 throw GiwsException::JniObjectCreationException(curEnv, this->className());
97 }
98  
99 this->instance = curEnv->NewGlobalRef(localInstance) ;
100 if(this->instance == NULL){
101 throw GiwsException::JniObjectCreationException(curEnv, this->className());
102 }
103 /* localInstance not needed anymore */
104 curEnv->DeleteLocalRef(localInstance);
105
106                 /* Methods ID set to NULL */
107 voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID=NULL;
108 voidremoveToolboxInfosjstringjava_lang_StringID=NULL;
109
110
111 }
112
113 ScilabPreferences::ScilabPreferences(JavaVM * jvm_, jobject JObj) {
114         jvm=jvm_;
115
116         JNIEnv * curEnv = getCurrentEnv();
117
118 jclass localClass = curEnv->GetObjectClass(JObj);
119         this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
120         curEnv->DeleteLocalRef(localClass);
121
122         if (this->instanceClass == NULL) {
123 throw GiwsException::JniObjectCreationException(curEnv, this->className());
124         }
125
126         this->instance = curEnv->NewGlobalRef(JObj) ;
127         if(this->instance == NULL){
128 throw GiwsException::JniObjectCreationException(curEnv, this->className());
129         }
130         /* Methods ID set to NULL */
131         voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID=NULL;
132 voidremoveToolboxInfosjstringjava_lang_StringID=NULL;
133
134
135 }
136
137 // Generic methods
138
139 void ScilabPreferences::synchronize() {
140 if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) {
141 throw GiwsException::JniMonitorException(getCurrentEnv(), "ScilabPreferences");
142 }
143 }
144
145 void ScilabPreferences::endSynchronize() {
146 if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) {
147 throw GiwsException::JniMonitorException(getCurrentEnv(), "ScilabPreferences");
148 }
149 }
150 // Method(s)
151
152 void ScilabPreferences::addToolboxInfos (JavaVM * jvm_, char const* name, char const* path, char const* prefFile){
153
154 JNIEnv * curEnv = NULL;
155 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
156 jclass cls = curEnv->FindClass( className().c_str() );
157
158 jmethodID voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "addToolboxInfos", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" ) ;
159 if (voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID == NULL) {
160 throw GiwsException::JniMethodNotFoundException(curEnv, "addToolboxInfos");
161 }
162
163 jstring name_ = curEnv->NewStringUTF( name );
164 if (name != NULL && name_ == NULL)
165 {
166 throw GiwsException::JniBadAllocException(curEnv);
167 }
168
169
170 jstring path_ = curEnv->NewStringUTF( path );
171 if (path != NULL && path_ == NULL)
172 {
173 throw GiwsException::JniBadAllocException(curEnv);
174 }
175
176
177 jstring prefFile_ = curEnv->NewStringUTF( prefFile );
178 if (prefFile != NULL && prefFile_ == NULL)
179 {
180 throw GiwsException::JniBadAllocException(curEnv);
181 }
182
183
184                          curEnv->CallStaticVoidMethod(cls, voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID ,name_, path_, prefFile_);
185                         curEnv->DeleteLocalRef(name_);
186 curEnv->DeleteLocalRef(path_);
187 curEnv->DeleteLocalRef(prefFile_);
188 curEnv->DeleteLocalRef(cls);
189 if (curEnv->ExceptionCheck()) {
190 throw GiwsException::JniCallMethodException(curEnv);
191 }
192 }
193
194 void ScilabPreferences::removeToolboxInfos (JavaVM * jvm_, char const* path){
195
196 JNIEnv * curEnv = NULL;
197 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
198 jclass cls = curEnv->FindClass( className().c_str() );
199
200 jmethodID voidremoveToolboxInfosjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "removeToolboxInfos", "(Ljava/lang/String;)V" ) ;
201 if (voidremoveToolboxInfosjstringjava_lang_StringID == NULL) {
202 throw GiwsException::JniMethodNotFoundException(curEnv, "removeToolboxInfos");
203 }
204
205 jstring path_ = curEnv->NewStringUTF( path );
206 if (path != NULL && path_ == NULL)
207 {
208 throw GiwsException::JniBadAllocException(curEnv);
209 }
210
211
212                          curEnv->CallStaticVoidMethod(cls, voidremoveToolboxInfosjstringjava_lang_StringID ,path_);
213                         curEnv->DeleteLocalRef(path_);
214 curEnv->DeleteLocalRef(cls);
215 if (curEnv->ExceptionCheck()) {
216 throw GiwsException::JniCallMethodException(curEnv);
217 }
218 }
219
220 }