Beispiel #1
0
 public JniObject NewObjectCore(JniEnvironment environment, JValue[] arguments, JniConcreteObjectType concreteType)
 {
     VerifyEnvironment(environment);
     // NOTE: OK if "JValue[] arguments" is null
     IntPtr result = JniEnvironment.Functions.NewObjectA(environment.Handle, this.DeclaringClass.Handle, this.Handle, arguments);
     if (IntPtr.Zero == result)
     {
         JniThrowable.ThrowCurrentException(environment); // null result means an exception occurred
     }
     // EXCEPTION CHECK: Do nothing, already checked for exception above.
     return JniObject.CreateObjectOfType(environment, result, concreteType);
 }
Beispiel #2
0
 internal static JniObject CreateObjectOfType(JniEnvironment environment, IntPtr handle, 
     JniConcreteObjectType concreteType)
 {
     return CreateObjectOfType(environment, handle, concreteType, JniObjectLifecycle.Local);
 }
Beispiel #3
0
 private static JniObject CreateObjectOfType(JniEnvironment environment, IntPtr handle, 
     JniConcreteObjectType concreteType, JniObjectLifecycle lifecycle)
 {
     switch (concreteType)
     {
         case JniConcreteObjectType.Object: return new JniObject(environment, handle, lifecycle);
         case JniConcreteObjectType.String: return new JniString(environment, handle, lifecycle);
         case JniConcreteObjectType.Class: return new JniClass(environment, handle, lifecycle);
         case JniConcreteObjectType.Throwable: return new JniThrowable(environment, handle, lifecycle);
         case JniConcreteObjectType.BooleanArray: return new JniBooleanArray(environment, handle, lifecycle);
         case JniConcreteObjectType.ByteArray: return new JniByteArray(environment, handle, lifecycle);
         case JniConcreteObjectType.CharArray: return new JniCharArray(environment, handle, lifecycle);
         case JniConcreteObjectType.DoubleArray: return new JniDoubleArray(environment, handle, lifecycle);
         case JniConcreteObjectType.IntArray: return new JniIntArray(environment, handle, lifecycle);
         case JniConcreteObjectType.FloatArray: return new JniFloatArray(environment, handle, lifecycle);
         case JniConcreteObjectType.LongArray: return new JniLongArray(environment, handle, lifecycle);
         case JniConcreteObjectType.ShortArray: return new JniShortArray(environment, handle, lifecycle);
         case JniConcreteObjectType.ObjectArray: return new JniObjectArray(environment, handle, lifecycle, -1, JniType.Null);
         default: throw new JniException("TODO");
     }
 }
Beispiel #4
0
 public static JniObject CreateObjectOfTypeFromJ2N(JniEnvironment environment, IntPtr handle, 
     JniConcreteObjectType concreteType)
 {
     return CreateObjectOfType(environment, handle, concreteType, JniObjectLifecycle.LocalJ2N);
 }