void FSTimeLimiter(int iYear, int iMonth, int iDay) { time_t secs=time(0); #if defined (WIN32) tm now_s; localtime_s(&now_s, &secs); const tm *now=&now_s; #else tm *now=localtime(&secs); #endif if (now->tm_year+1900 > iYear) throw CFSException(); if (now->tm_year+1900 == iYear) { if (now->tm_mon+1 > iMonth) throw CFSException(); if (now->tm_mon+1 == iMonth) { if (now->tm_mday >= iDay) throw CFSException(); } } }
jobject MorphInfoToJNI(JNIEnv *env, const CMorphInfo &MorphInfo) { jclass MorphInfoClass = env->FindClass("ee/filosoft/vabamorf/MorphInfo"); jmethodID MorphInfoClassConstructor = (MorphInfoClass ? env->GetMethodID(MorphInfoClass, "<init>", "()V") : 0); if (!MorphInfoClassConstructor) throw CFSException(); jobject morphInfo = env->NewObject(MorphInfoClass, MorphInfoClassConstructor); FSJNISetStringField(env, morphInfo, "root", FSJNIWtoStr(env, MorphInfo.m_szRoot)); FSJNISetStringField(env, morphInfo, "ending", FSJNIWtoStr(env, MorphInfo.m_szEnding)); FSJNISetStringField(env, morphInfo, "clitic", FSJNIWtoStr(env, MorphInfo.m_szClitic)); FSJNISetCharField(env, morphInfo, "pos", MorphInfo.m_cPOS); FSJNISetStringField(env, morphInfo, "form", FSJNIWtoStr(env, MorphInfo.m_szForm)); return morphInfo; }
jobject MorphInfosToJNI(JNIEnv *env, const CMorphInfos &MorphInfos) { jclass MorphInfosClass = env->FindClass("ee/filosoft/vabamorf/MorphInfos"); jmethodID MorphInfosClassConstructor = (MorphInfosClass ? env->GetMethodID(MorphInfosClass, "<init>", "()V") : 0); if (!MorphInfosClassConstructor) throw CFSException(); jobject morphInfos = env->NewObject(MorphInfosClass, MorphInfosClassConstructor); FSJNISetStringField(env, morphInfos, "word", FSJNIWtoStr(env, MorphInfos.m_szWord)); jobjectArray morphInfo = (jobjectArray)env->NewObjectArray(MorphInfos.m_MorphInfo.GetSize(), env->FindClass("java/lang/Object"), 0); for (INTPTR ip2 = 0; ip2 < MorphInfos.m_MorphInfo.GetSize(); ip2++) { env->SetObjectArrayElement(morphInfo, ip2, MorphInfoToJNI(env, MorphInfos.m_MorphInfo[ip2])); } FSJNISetObjectField(env, morphInfos, "morphInfo", "[Lee/filosoft/vabamorf/MorphInfo;", morphInfo); return morphInfos; }