static jboolean JNICALL JniOperatorEquals(JNIEnv* env, jclass clazz, jlong ptr, jlong otherPtr) { AdblockPlus::Filter* me = GetFilterPtr(ptr); AdblockPlus::Filter* other = GetFilterPtr(otherPtr); try { return *me == *other ? JNI_TRUE : JNI_FALSE; } CATCH_THROW_AND_RETURN(env, JNI_FALSE) }
static void JNICALL JniRemoveFromList(JNIEnv* env, jclass clazz, jlong ptr) { try { GetFilterPtr(ptr)->RemoveFromList(); } CATCH_AND_THROW(env) }
static jboolean JNICALL JniIsListed(JNIEnv* env, jclass clazz, jlong ptr) { try { return GetFilterPtr(ptr)->IsListed() ? JNI_TRUE : JNI_FALSE; } CATCH_THROW_AND_RETURN(env, JNI_FALSE) }
static jobject JNICALL JniGetType(JNIEnv* env, jclass clazz, jlong ptr) { AdblockPlus::Filter::Type type; try { type = GetFilterPtr(ptr)->GetType(); } CATCH_THROW_AND_RETURN(env, 0) const char* enumName = 0; switch (type) { case AdblockPlus::Filter::TYPE_BLOCKING: enumName = "BLOCKING"; break; case AdblockPlus::Filter::TYPE_COMMENT: enumName = "COMMENT"; break; case AdblockPlus::Filter::TYPE_ELEMHIDE: enumName = "ELEMHIDE"; break; case AdblockPlus::Filter::TYPE_ELEMHIDE_EXCEPTION: enumName = "ELEMHIDE_EXCEPTION"; break; case AdblockPlus::Filter::TYPE_EXCEPTION: enumName = "EXCEPTION"; break; default: enumName = "INVALID"; break; } JniLocalReference<jclass> enumClass(env, env->FindClass(PKG("Filter$Type"))); jfieldID enumField = env->GetStaticFieldID(*enumClass, enumName, TYP("Filter$Type")); return env->GetStaticObjectField(*enumClass, enumField); }