#import <defobj/directory.h> // for safe access to jni things

extern jclass c_boolean,
  c_char, c_byte,
  c_int, 
  c_short, c_long,
  c_float, c_double,
  c_void;

extern jclass c_Boolean, 
  c_Char, c_Byte, 
  c_Integer, c_Short,
  c_Long, c_Float, c_Double,
  c_Class, c_Object, c_String, 
  c_Field, c_Method, c_Modifier,
  c_Collection,
  c_Base, c_Selector, c_PhaseCImpl, c_Primitives, c_ObjCProxy,
  c_ProxyClassLoader,
  c_SwarmEnvironmentImpl;

extern jmethodID m_BooleanValueOf,
  m_ByteValueOf, 
  m_IntegerValueOf, 
  m_ShortValueOf, m_LongValueOf,   
  m_FloatValueOf, m_DoubleValueOf, 
  m_StringValueOfBoolean, 
  m_StringValueOfChar,
  m_StringValueOfInt,
  m_StringValueOfLong,
  m_StringValueOfFloat,
  m_StringValueOfDouble,
  m_StringValueOfObject,
  m_FieldSet,
  m_FieldSetChar,
  m_FieldSetFloat,
  m_FieldSetDouble,
  m_ClassGetField,
  m_ClassGetDeclaredField,
  m_ClassGetDeclaredFields,
  m_ClassGetDeclaredMethods,
  m_ClassGetFields,
  m_ClassGetName,
  m_ClassIsArray,
  m_FieldGetType,
  m_FieldGetBoolean,
  m_FieldGetChar,
  m_FieldGetShort,
  m_FieldGetInt,
  m_FieldGetLong,
  m_FieldGetFloat,
  m_FieldGetDouble,
  m_FieldGetObject,
  m_FieldGetName,
  m_FieldGetModifiers,
  m_MethodGetName,
  m_MethodGetReturnType,
  m_MethodGetModifiers,
  m_ModifierIsPublic,
  m_ModifierIsStatic,
  m_SelectorConstructor,
  m_HashCode,
  m_Equals,
  m_PhaseCImpl_copy_creating_phase_to_using_phase,
  m_PrimitivesGetTypeMethod,
  m_ProxyClassLoaderLoadClass;

extern jfieldID f_objcPtrFid,
  f_nameFid,
  f_retTypeFid,
  f_argTypesFid,
  f_typeSignatureFid,
  f_objcFlagFid,
  f_nextPhase;
