/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "JniConstants.h" #include jclass JniConstants::bidiRunClass; jclass JniConstants::bigDecimalClass; jclass JniConstants::booleanClass; jclass JniConstants::byteClass; jclass JniConstants::byteArrayClass; jclass JniConstants::charsetICUClass; jclass JniConstants::constructorClass; jclass JniConstants::datagramPacketClass; jclass JniConstants::deflaterClass; jclass JniConstants::doubleClass; jclass JniConstants::fieldClass; jclass JniConstants::fieldPositionIteratorClass; jclass JniConstants::multicastGroupRequestClass; jclass JniConstants::inetAddressClass; jclass JniConstants::inflaterClass; jclass JniConstants::integerClass; jclass JniConstants::interfaceAddressClass; jclass JniConstants::localeDataClass; jclass JniConstants::longClass; jclass JniConstants::methodClass; jclass JniConstants::parsePositionClass; jclass JniConstants::patternSyntaxExceptionClass; jclass JniConstants::realToStringClass; jclass JniConstants::socketClass; jclass JniConstants::socketImplClass; jclass JniConstants::stringClass; jclass JniConstants::vmRuntimeClass; static jclass findClass(JNIEnv* env, const char* name) { jclass result = reinterpret_cast(env->NewGlobalRef(env->FindClass(name))); if (result == NULL) { LOGE("failed to find class '%s'", name); abort(); } return result; } void JniConstants::init(JNIEnv* env) { bidiRunClass = findClass(env, "org/apache/harmony/text/BidiRun"); bigDecimalClass = findClass(env, "java/math/BigDecimal"); booleanClass = findClass(env, "java/lang/Boolean"); byteClass = findClass(env, "java/lang/Byte"); byteArrayClass = findClass(env, "[B"); charsetICUClass = findClass(env, "com/ibm/icu4jni/charset/CharsetICU"); constructorClass = findClass(env, "java/lang/reflect/Constructor"); datagramPacketClass = findClass(env, "java/net/DatagramPacket"); deflaterClass = findClass(env, "java/util/zip/Deflater"); doubleClass = findClass(env, "java/lang/Double"); fieldClass = findClass(env, "java/lang/reflect/Field"); fieldPositionIteratorClass = findClass(env, "com/ibm/icu4jni/text/NativeDecimalFormat$FieldPositionIterator"); inetAddressClass = findClass(env, "java/net/InetAddress"); inflaterClass = findClass(env, "java/util/zip/Inflater"); integerClass = findClass(env, "java/lang/Integer"); interfaceAddressClass = findClass(env, "java/net/InterfaceAddress"); localeDataClass = findClass(env, "com/ibm/icu4jni/util/LocaleData"); longClass = findClass(env, "java/lang/Long"); methodClass = findClass(env, "java/lang/reflect/Method"); multicastGroupRequestClass = findClass(env, "java/net/MulticastGroupRequest"); parsePositionClass = findClass(env, "java/text/ParsePosition"); patternSyntaxExceptionClass = findClass(env, "java/util/regex/PatternSyntaxException"); realToStringClass = findClass(env, "java/lang/RealToString"); socketClass = findClass(env, "java/net/Socket"); socketImplClass = findClass(env, "java/net/SocketImpl"); stringClass = findClass(env, "java/lang/String"); vmRuntimeClass = findClass(env, "dalvik/system/VMRuntime"); }