Changeset 360 for trunk/zoo-project/zoo-kernel/service_internal_java.c
- Timestamp:
- Jun 7, 2012, 10:54:31 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/zoo-project/zoo-kernel/service_internal_java.c
r355 r360 2 2 * Author : Gérald FENOY 3 3 * 4 * Copyright (c) 2009-201 1GeoLabs SARL4 * Copyright (c) 2009-2012 GeoLabs SARL 5 5 * 6 6 * Permission is hereby granted, free of charge, to any person obtaining a copy … … 201 201 maps* tmp=t; 202 202 while(tmp!=NULL){ 203 map* tmap=getMapType(tmp->content); 203 204 map* tmp1=tmp->content; 204 205 scObject1 = (*env)->NewObject(env, scHashMap_class, scHashMap_constructor); 205 206 map* sizeV=getMap(tmp1,"size"); 207 map* isArray=getMap(tmp1,"isArray"); 208 map* alen=getMap(tmp1,"length"); 206 209 while(tmp1!=NULL){ 207 if(sizeV!=NULL && strcmp(tmp1->name,"value")==0){ 208 jbyteArray tmpData=(*env)->NewByteArray(env,atoi(sizeV->value)); 209 (*env)->SetByteArrayRegion(env,tmpData,0,atoi(sizeV->value),tmp1->value); 210 (*env)->CallObjectMethod(env,scObject1, put_mid, (*env)->NewStringUTF(env,tmp1->name), tmpData); 211 }else 210 if(strcmp(tmp1->name,"value")==0){ 211 if(isArray==NULL){ 212 if(sizeV!=NULL && strcmp(tmp1->name,"value")==0){ 213 jbyteArray tmpData=(*env)->NewByteArray(env,atoi(sizeV->value)); 214 (*env)->SetByteArrayRegion(env,tmpData,0,atoi(sizeV->value),tmp1->value); 215 (*env)->CallObjectMethod(env,scObject1, put_mid, (*env)->NewStringUTF(env,tmp1->name), tmpData); 216 }else 217 (*env)->CallObjectMethod(env,scObject1, put_mid, (*env)->NewStringUTF(env,tmp1->name), (*env)->NewStringUTF(env,tmp1->value)); 218 } 219 else{ 220 int alen1=atoi(alen->value); 221 fprintf(stderr,"LENGTH %d \n",alen1); 222 223 jclass scArrayListClass,scArrayList_class; 224 jmethodID scArrayList_constructor; 225 jobject scObject2,scObject3,scObject4; 226 scArrayListClass = (*env)->FindClass(env, "java/util/ArrayList"); 227 scArrayList_class = (*env)->NewGlobalRef(env, scArrayListClass); 228 scArrayList_constructor = (*env)->GetMethodID(env, scArrayList_class, "<init>", "()V"); 229 jmethodID add_mid = 0; 230 scObject2 = (*env)->NewObject(env, scArrayList_class, scArrayList_constructor); 231 scObject3 = (*env)->NewObject(env, scArrayList_class, scArrayList_constructor); 232 scObject4 = (*env)->NewObject(env, scArrayList_class, scArrayList_constructor); 233 234 add_mid = (*env)->GetMethodID(env,scArrayListClass, 235 "add","(Ljava/lang/Object;)Z"); 236 237 int i; 238 239 for(i=0;i<alen1;i++){ 240 map* vMap=getMapArray(tmp->content,"value",i); 241 map* sMap=getMapArray(tmp->content,"size",i); 242 map* mMap=getMapArray(tmp->content,tmap->value,i); 243 244 if(sMap!=NULL && vMap!=NULL && strncmp(vMap->name,"value",5)==0){ 245 jbyteArray tmpData=(*env)->NewByteArray(env,atoi(sMap->value)); 246 (*env)->SetByteArrayRegion(env,tmpData,0,atoi(sMap->value),vMap->value); 247 (*env)->CallObjectMethod(env,scObject2, add_mid, tmpData); 248 }else{ 249 jobject tmpData=(*env)->NewStringUTF(env,vMap->value); 250 (*env)->CallObjectMethod(env,scObject2, add_mid, tmpData); 251 } 252 253 } 254 255 (*env)->CallObjectMethod(env,scObject1, put_mid, (*env)->NewStringUTF(env,tmp1->name), scObject2); 256 257 } 258 } 259 else 212 260 (*env)->CallObjectMethod(env,scObject1, put_mid, (*env)->NewStringUTF(env,tmp1->name), (*env)->NewStringUTF(env,tmp1->value)); 213 261 tmp1=tmp1->next;
Note: See TracChangeset
for help on using the changeset viewer.