static void array_write_java(const ArrayResource *res, UErrorCode *status) { uint32_t i = 0; const char* arr ="new String[] { \n"; struct SResource *current = NULL; UBool allStrings = TRUE; if (U_FAILURE(*status)) { return; } if (res->fCount > 0) { current = res->fFirst; i = 0; while(current != NULL){ if(!current->isString()){ allStrings = FALSE; break; } current= current->fNext; } current = res->fFirst; if(allStrings==FALSE){ const char* object = "new Object[]{\n"; write_tabs(out); T_FileStream_write(out, object, (int32_t)uprv_strlen(object)); tabCount++; }else{ write_tabs(out); T_FileStream_write(out, arr, (int32_t)uprv_strlen(arr)); tabCount++; } while (current != NULL) { /*if(current->isString()){ write_tabs(out); }*/ res_write_java(current, status); if(U_FAILURE(*status)){ return; } i++; current = current->fNext; } T_FileStream_write(out,"\n",1); tabCount--; write_tabs(out); T_FileStream_write(out,"},\n",3); } else { write_tabs(out); T_FileStream_write(out,arr,(int32_t)uprv_strlen(arr)); write_tabs(out); T_FileStream_write(out,"},\n",3); } }
void bundle_write_java(struct SRBRoot *bundle, const char *outputDir,const char* outputEnc, char *writtenFilename, int writtenFilenameLen, const char* packageName, const char* bundleName, UErrorCode *status) { char fileName[256] = {'\0'}; char className[256]={'\0'}; /*char constructor[1000] = { 0 };*/ /*UBool j1 =FALSE;*/ outDir = outputDir; start = TRUE; /* Reset the start indictor*/ bName = (bundleName==NULL) ? "LocaleElements" : bundleName; pName = (packageName==NULL)? "com.ibm.icu.impl.data" : packageName; uprv_strcpy(className, bName); srBundle = bundle; if(uprv_strcmp(srBundle->fLocale,"root")!=0){ uprv_strcat(className,"_"); uprv_strcat(className,srBundle->fLocale); } if(outputDir){ uprv_strcpy(fileName, outputDir); if(outputDir[uprv_strlen(outputDir)-1] !=U_FILE_SEP_CHAR){ uprv_strcat(fileName,U_FILE_SEP_STRING); } uprv_strcat(fileName,className); uprv_strcat(fileName,".java"); }else{ uprv_strcat(fileName,className); uprv_strcat(fileName,".java"); } if (writtenFilename) { uprv_strncpy(writtenFilename, fileName, writtenFilenameLen); } if (U_FAILURE(*status)) { return; } out= T_FileStream_open(fileName,"w"); if(out==NULL){ *status = U_FILE_ACCESS_ERROR; return; } if(getIncludeCopyright()){ T_FileStream_write(out, copyRight, (int32_t)uprv_strlen(copyRight)); T_FileStream_write(out, warningMsg, (int32_t)uprv_strlen(warningMsg)); } T_FileStream_write(out,"package ",(int32_t)uprv_strlen("package ")); T_FileStream_write(out,pName,(int32_t)uprv_strlen(pName)); T_FileStream_write(out,";\n\n",3); T_FileStream_write(out, javaClass, (int32_t)uprv_strlen(javaClass)); T_FileStream_write(out, className, (int32_t)uprv_strlen(className)); T_FileStream_write(out, javaClass1, (int32_t)uprv_strlen(javaClass1)); /* if(j1){ T_FileStream_write(out, javaClass1, (int32_t)uprv_strlen(javaClass1)); }else{ sprintf(constructor,javaClassICU,className); T_FileStream_write(out, constructor, (int32_t)uprv_strlen(constructor)); } */ if(outputEnc && *outputEnc!='\0'){ /* store the output encoding */ enc = outputEnc; conv=ucnv_open(enc,status); if(U_FAILURE(*status)){ return; } } res_write_java(bundle->fRoot, status); T_FileStream_write(out, closeClass, (int32_t)uprv_strlen(closeClass)); T_FileStream_close(out); ucnv_close(conv); }
static void table_write_java(struct SResource *res, UErrorCode *status) { uint32_t i = 0; UBool allStrings =TRUE; struct SResource *current = NULL; struct SResource *save = NULL; const char* obj = "new Object[][]{\n"; if (U_FAILURE(*status)) { return ; } if (res->u.fTable.fCount > 0) { if(start==FALSE){ write_tabs(out); T_FileStream_write(out, obj, (int32_t)uprv_strlen(obj)); tabCount++; } start = FALSE; save = current = res->u.fTable.fFirst; i = 0; while (current != NULL) { char currentKeyBuffer[8]; const char *currentKeyString = res_getKeyString(srBundle, current, currentKeyBuffer); assert(i < res->u.fTable.fCount); write_tabs(out); T_FileStream_write(out, openBrace, 2); tabCount++; allStrings=FALSE; write_tabs(out); if(currentKeyString != NULL) { T_FileStream_write(out, "\"", 1); T_FileStream_write(out, currentKeyString, (int32_t)uprv_strlen(currentKeyString)); T_FileStream_write(out, "\",\n", 2); T_FileStream_write(out, "\n", 1); } res_write_java(current, status); if(U_FAILURE(*status)){ return; } i++; current = current->fNext; tabCount--; write_tabs(out); T_FileStream_write(out, "},\n", 3); } if(tabCount>4){ tabCount--; write_tabs(out); T_FileStream_write(out, "},\n", 3); } } else { write_tabs(out); T_FileStream_write(out,obj,(int32_t)uprv_strlen(obj)); write_tabs(out); T_FileStream_write(out,"},\n",3); } }