Prefs: add a function preferences()
[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 -e -r -f 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 voidopenPreferencesID=NULL;
110
111
112 }
113
114 ScilabPreferences::ScilabPreferences(JavaVM * jvm_, jobject JObj) {
115         jvm=jvm_;
116
117         JNIEnv * curEnv = getCurrentEnv();
118
119 jclass localClass = curEnv->GetObjectClass(JObj);
120         this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
121         curEnv->DeleteLocalRef(localClass);
122
123         if (this->instanceClass == NULL) {
124 throw GiwsException::JniObjectCreationException(curEnv, this->className());
125         }
126
127         this->instance = curEnv->NewGlobalRef(JObj) ;
128         if(this->instance == NULL){
129 throw GiwsException::JniObjectCreationException(curEnv, this->className());
130         }
131         /* Methods ID set to NULL */
132         voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID=NULL;
133 voidremoveToolboxInfosjstringjava_lang_StringID=NULL;
134 voidopenPreferencesID=NULL;
135
136
137 }
138
139 // Generic methods
140
141 void ScilabPreferences::synchronize() {
142 if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) {
143 throw GiwsException::JniMonitorException(getCurrentEnv(), "ScilabPreferences");
144 }
145 }
146
147 void ScilabPreferences::endSynchronize() {
148 if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) {
149 throw GiwsException::JniMonitorException(getCurrentEnv(), "ScilabPreferences");
150 }
151 }
152 // Method(s)
153
154 void ScilabPreferences::addToolboxInfos (JavaVM * jvm_, char const* name, char const* path, char const* prefFile){
155
156 JNIEnv * curEnv = NULL;
157 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
158 jclass cls = curEnv->FindClass( className().c_str() );
159
160 jmethodID voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "addToolboxInfos", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" ) ;
161 if (voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID == NULL) {
162 throw GiwsException::JniMethodNotFoundException(curEnv, "addToolboxInfos");
163 }
164
165 jstring name_ = curEnv->NewStringUTF( name );
166 if (name != NULL && name_ == NULL)
167 {
168 throw GiwsException::JniBadAllocException(curEnv);
169 }
170
171
172 jstring path_ = curEnv->NewStringUTF( path );
173 if (path != NULL && path_ == NULL)
174 {
175 throw GiwsException::JniBadAllocException(curEnv);
176 }
177
178
179 jstring prefFile_ = curEnv->NewStringUTF( prefFile );
180 if (prefFile != NULL && prefFile_ == NULL)
181 {
182 throw GiwsException::JniBadAllocException(curEnv);
183 }
184
185
186                          curEnv->CallStaticVoidMethod(cls, voidaddToolboxInfosjstringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringID ,name_, path_, prefFile_);
187                         curEnv->DeleteLocalRef(name_);
188 curEnv->DeleteLocalRef(path_);
189 curEnv->DeleteLocalRef(prefFile_);
190 curEnv->DeleteLocalRef(cls);
191 if (curEnv->ExceptionCheck()) {
192 throw GiwsException::JniCallMethodException(curEnv);
193 }
194 }
195
196 void ScilabPreferences::removeToolboxInfos (JavaVM * jvm_, char const* path){
197
198 JNIEnv * curEnv = NULL;
199 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
200 jclass cls = curEnv->FindClass( className().c_str() );
201
202 jmethodID voidremoveToolboxInfosjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "removeToolboxInfos", "(Ljava/lang/String;)V" ) ;
203 if (voidremoveToolboxInfosjstringjava_lang_StringID == NULL) {
204 throw GiwsException::JniMethodNotFoundException(curEnv, "removeToolboxInfos");
205 }
206
207 jstring path_ = curEnv->NewStringUTF( path );
208 if (path != NULL && path_ == NULL)
209 {
210 throw GiwsException::JniBadAllocException(curEnv);
211 }
212
213
214                          curEnv->CallStaticVoidMethod(cls, voidremoveToolboxInfosjstringjava_lang_StringID ,path_);
215                         curEnv->DeleteLocalRef(path_);
216 curEnv->DeleteLocalRef(cls);
217 if (curEnv->ExceptionCheck()) {
218 throw GiwsException::JniCallMethodException(curEnv);
219 }
220 }
221
222 void ScilabPreferences::openPreferences (JavaVM * jvm_){
223
224 JNIEnv * curEnv = NULL;
225 jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
226 jclass cls = curEnv->FindClass( className().c_str() );
227
228 jmethodID voidopenPreferencesID = curEnv->GetStaticMethodID(cls, "openPreferences", "()V" ) ;
229 if (voidopenPreferencesID == NULL) {
230 throw GiwsException::JniMethodNotFoundException(curEnv, "openPreferences");
231 }
232
233                          curEnv->CallStaticVoidMethod(cls, voidopenPreferencesID );
234                         curEnv->DeleteLocalRef(cls);
235 if (curEnv->ExceptionCheck()) {
236 throw GiwsException::JniCallMethodException(curEnv);
237 }
238 }
239
240 }