diff --git a/pkgs/jni/CHANGELOG.md b/pkgs/jni/CHANGELOG.md index b73d2b66f..76177d34d 100644 --- a/pkgs/jni/CHANGELOG.md +++ b/pkgs/jni/CHANGELOG.md @@ -14,6 +14,8 @@ use `Jni.androidApplicationContext(engineId)` to access the application context and use `Jni.androidActivity(engineId)` to acccess the activity. - Update to the latest lints. +- **Breaking Change**: `JArray`'s unnamed constructor is now + `JArray.withLength`. ## 0.14.2 diff --git a/pkgs/jni/lib/_internal.dart b/pkgs/jni/lib/_internal.dart index 9c0db34f7..40cef7f22 100644 --- a/pkgs/jni/lib/_internal.dart +++ b/pkgs/jni/lib/_internal.dart @@ -28,54 +28,31 @@ export 'dart:isolate' show RawReceivePort, ReceivePort; export 'package:meta/meta.dart' show internal; export 'src/accessors.dart'; -export 'src/jarray.dart' - show - $JArray$NullableType$, - $JArray$Type$, - $JBooleanArray$NullableType$, - $JBooleanArray$Type$, - $JByteArray$NullableType$, - $JByteArray$Type$, - $JCharArray$NullableType$, - $JCharArray$Type$, - $JDoubleArray$NullableType$, - $JDoubleArray$Type$, - $JFloatArray$NullableType$, - $JFloatArray$Type$, - $JIntArray$NullableType$, - $JIntArray$Type$, - $JLongArray$NullableType$, - $JLongArray$Type$, - $JShortArray$NullableType$, - $JShortArray$Type$; export 'src/jni.dart' show ProtectedJniExtensions; -export 'src/jobject.dart' show $JObject$NullableType$, $JObject$Type$; +export 'src/jobject.dart' show $JObject$Type$; export 'src/jreference.dart'; export 'src/kotlin.dart' show coroutineSingletonsClass, failureExceptionField, result$FailureClass; -export 'src/lang/jboolean.dart' show $JBoolean$NullableType$, $JBoolean$Type$; -export 'src/lang/jbyte.dart' show $JByte$NullableType$, $JByte$Type$; -export 'src/lang/jcharacter.dart' - show $JCharacter$NullableType$, $JCharacter$Type$; -export 'src/lang/jdouble.dart' show $JDouble$NullableType$, $JDouble$Type$; -export 'src/lang/jfloat.dart' show $JFloat$NullableType$, $JFloat$Type$; -export 'src/lang/jinteger.dart' show $JInteger$NullableType$, $JInteger$Type$; -export 'src/lang/jlong.dart' show $JLong$NullableType$, $JLong$Type$; -export 'src/lang/jnumber.dart' show $JNumber$NullableType$, $JNumber$Type$; -export 'src/lang/jshort.dart' show $JShort$NullableType$, $JShort$Type$; -export 'src/lang/jstring.dart' show $JString$NullableType$, $JString$Type$; +export 'src/lang/jboolean.dart'; +export 'src/lang/jbyte.dart'; +export 'src/lang/jcharacter.dart'; +export 'src/lang/jdouble.dart'; +export 'src/lang/jfloat.dart'; +export 'src/lang/jinteger.dart'; +export 'src/lang/jlong.dart'; +export 'src/lang/jnumber.dart'; +export 'src/lang/jshort.dart'; +export 'src/lang/jstring.dart'; export 'src/method_invocation.dart'; -export 'src/nio/jbuffer.dart' show $JBuffer$NullableType$, $JBuffer$Type$; -export 'src/nio/jbyte_buffer.dart' - show $JByteBuffer$NullableType$, $JByteBuffer$Type$; +export 'src/nio/jbuffer.dart'; +export 'src/nio/jbyte_buffer.dart'; export 'src/third_party/generated_bindings.dart' show JFieldIDPtr, JMethodIDPtr, JObjectPtr, JThrowablePtr, JniResult; -export 'src/types.dart' show JTypeBase, lowestCommonSuperType, referenceType; -export 'src/util/jiterator.dart' - show $JIterator$NullableType$, $JIterator$Type$; -export 'src/util/jlist.dart' show $JList$NullableType$, $JList$Type$; -export 'src/util/jmap.dart' show $JMap$NullableType$, $JMap$Type$; -export 'src/util/jset.dart' show $JSet$NullableType$, $JSet$Type$; +export 'src/types.dart' show JTypeBase, referenceType; +export 'src/util/jiterator.dart'; +export 'src/util/jlist.dart'; +export 'src/util/jmap.dart'; +export 'src/util/jset.dart'; /// Temporary fix for the macOS arm64 varargs problem. /// diff --git a/pkgs/jni/lib/core_bindings/java/util/Iterator.dart b/pkgs/jni/lib/core_bindings/java/util/Iterator.dart new file mode 100644 index 000000000..1745f7c0b --- /dev/null +++ b/pkgs/jni/lib/core_bindings/java/util/Iterator.dart @@ -0,0 +1,299 @@ +// AUTO GENERATED BY JNIGEN 0.15.0. DO NOT EDIT! + +// ignore_for_file: annotate_overrides +// ignore_for_file: argument_type_not_assignable +// ignore_for_file: camel_case_extensions +// ignore_for_file: camel_case_types +// ignore_for_file: constant_identifier_names +// ignore_for_file: comment_references +// ignore_for_file: doc_directive_unknown +// ignore_for_file: file_names +// ignore_for_file: inference_failure_on_untyped_parameter +// ignore_for_file: invalid_internal_annotation +// ignore_for_file: invalid_use_of_internal_member +// ignore_for_file: library_prefixes +// ignore_for_file: lines_longer_than_80_chars +// ignore_for_file: no_leading_underscores_for_library_prefixes +// ignore_for_file: no_leading_underscores_for_local_identifiers +// ignore_for_file: non_constant_identifier_names +// ignore_for_file: only_throw_errors +// ignore_for_file: overridden_fields +// ignore_for_file: prefer_double_quotes +// ignore_for_file: unintended_html_in_doc_comment +// ignore_for_file: unnecessary_cast +// ignore_for_file: unnecessary_non_null_assertion +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: unused_element +// ignore_for_file: unused_field +// ignore_for_file: unused_import +// ignore_for_file: unused_local_variable +// ignore_for_file: unused_shown_name +// ignore_for_file: use_super_parameters + +import 'dart:core' show Object, String, bool, double, int; +import 'dart:core' as core$_; + +import 'package:jni/_internal.dart' as jni$_; +import 'package:jni/jni.dart' as jni$_; + +/// from: `java.util.Iterator` +extension type Iterator<$E extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { + static final _class = jni$_.JClass.forName(r'java/util/Iterator'); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $Iterator$Type$(); + static final _id_hasNext = _class.instanceMethodId( + r'hasNext', + r'()Z', + ); + + static final _hasNext = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract boolean hasNext()` + bool hasNext() { + return _hasNext(reference.pointer, _id_hasNext as jni$_.JMethodIDPtr) + .boolean; + } + + static final _id_next = _class.instanceMethodId( + r'next', + r'()Ljava/lang/Object;', + ); + + static final _next = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract E next()` + /// The returned object must be released after use, by calling the [release] method. + $E? next() { + return _next(reference.pointer, _id_next as jni$_.JMethodIDPtr) + .object<$E?>(); + } + + static final _id_remove = _class.instanceMethodId( + r'remove', + r'()V', + ); + + static final _remove = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public void remove()` + void remove() { + _remove(reference.pointer, _id_remove as jni$_.JMethodIDPtr).check(); + } + + static final _id_forEachRemaining = _class.instanceMethodId( + r'forEachRemaining', + r'(Ljava/util/function/Consumer;)V', + ); + + static final _forEachRemaining = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public void forEachRemaining(java.util.function.Consumer consumer)` + void forEachRemaining( + jni$_.JObject? consumer, + ) { + final _$consumer = consumer?.reference ?? jni$_.jNullReference; + _forEachRemaining(reference.pointer, + _id_forEachRemaining as jni$_.JMethodIDPtr, _$consumer.pointer) + .check(); + } + + /// Maps a specific port to the implemented interface. + static final core$_.Map _$impls = {}; + static jni$_.JObjectPtr _$invoke( + int port, + jni$_.JObjectPtr descriptor, + jni$_.JObjectPtr args, + ) { + return _$invokeMethod( + port, + jni$_.MethodInvocation.fromAddresses( + 0, + descriptor.address, + args.address, + ), + ); + } + + static final jni$_.Pointer< + jni$_.NativeFunction< + jni$_.JObjectPtr Function( + jni$_.Int64, jni$_.JObjectPtr, jni$_.JObjectPtr)>> + _$invokePointer = jni$_.Pointer.fromFunction(_$invoke); + + static jni$_.Pointer _$invokeMethod( + int $p, + jni$_.MethodInvocation $i, + ) { + try { + final $d = $i.methodDescriptor.toDartString(releaseOriginal: true); + final $a = $i.args; + if ($d == r'hasNext()Z') { + final $r = _$impls[$p]!.hasNext(); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'next()Ljava/lang/Object;') { + final $r = _$impls[$p]!.next(); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'remove()V') { + _$impls[$p]!.remove(); + return jni$_.nullptr; + } + if ($d == r'forEachRemaining(Ljava/util/function/Consumer;)V') { + _$impls[$p]!.forEachRemaining( + $a![0], + ); + return jni$_.nullptr; + } + } catch (e) { + return jni$_.ProtectedJniExtensions.newDartException(e); + } + return jni$_.nullptr; + } + + static void implementIn<$E extends jni$_.JObject?>( + jni$_.JImplementer implementer, + $Iterator<$E> $impl, + ) { + late final jni$_.RawReceivePort $p; + $p = jni$_.RawReceivePort(($m) { + if ($m == null) { + _$impls.remove($p.sendPort.nativePort); + $p.close(); + return; + } + final $i = jni$_.MethodInvocation.fromMessage($m); + final $r = _$invokeMethod($p.sendPort.nativePort, $i); + jni$_.ProtectedJniExtensions.returnResult($i.result, $r); + }); + implementer.add( + r'java.util.Iterator', + $p, + _$invokePointer, + [ + if ($impl.remove$async) r'remove()V', + if ($impl.forEachRemaining$async) + r'forEachRemaining(Ljava/util/function/Consumer;)V', + ], + ); + final $a = $p.sendPort.nativePort; + _$impls[$a] = $impl; + } + + factory Iterator.implement( + $Iterator<$E> $impl, + ) { + final $i = jni$_.JImplementer(); + implementIn($i, $impl); + return $i.implement>(); + } +} + +abstract base mixin class $Iterator<$E extends jni$_.JObject?> { + factory $Iterator({ + required bool Function() hasNext, + required $E? Function() next, + required void Function() remove, + bool remove$async, + required void Function(jni$_.JObject? consumer) forEachRemaining, + bool forEachRemaining$async, + }) = _$Iterator<$E>; + + bool hasNext(); + $E? next(); + void remove(); + bool get remove$async => false; + void forEachRemaining(jni$_.JObject? consumer); + bool get forEachRemaining$async => false; +} + +final class _$Iterator<$E extends jni$_.JObject?> with $Iterator<$E> { + _$Iterator({ + required bool Function() hasNext, + required $E? Function() next, + required void Function() remove, + this.remove$async = false, + required void Function(jni$_.JObject? consumer) forEachRemaining, + this.forEachRemaining$async = false, + }) : _hasNext = hasNext, + _next = next, + _remove = remove, + _forEachRemaining = forEachRemaining; + + final bool Function() _hasNext; + final $E? Function() _next; + final void Function() _remove; + final bool remove$async; + final void Function(jni$_.JObject? consumer) _forEachRemaining; + final bool forEachRemaining$async; + + bool hasNext() { + return _hasNext(); + } + + $E? next() { + return _next(); + } + + void remove() { + return _remove(); + } + + void forEachRemaining(jni$_.JObject? consumer) { + return _forEachRemaining(consumer); + } +} + +final class $Iterator$Type$ extends jni$_.JType { + @jni$_.internal + const $Iterator$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Ljava/util/Iterator;'; +} diff --git a/pkgs/jni/lib/core_bindings/java/util/List.dart b/pkgs/jni/lib/core_bindings/java/util/List.dart new file mode 100644 index 000000000..adb1fe271 --- /dev/null +++ b/pkgs/jni/lib/core_bindings/java/util/List.dart @@ -0,0 +1,2508 @@ +// AUTO GENERATED BY JNIGEN 0.15.0. DO NOT EDIT! + +// ignore_for_file: annotate_overrides +// ignore_for_file: argument_type_not_assignable +// ignore_for_file: camel_case_extensions +// ignore_for_file: camel_case_types +// ignore_for_file: constant_identifier_names +// ignore_for_file: comment_references +// ignore_for_file: doc_directive_unknown +// ignore_for_file: file_names +// ignore_for_file: inference_failure_on_untyped_parameter +// ignore_for_file: invalid_internal_annotation +// ignore_for_file: invalid_use_of_internal_member +// ignore_for_file: library_prefixes +// ignore_for_file: lines_longer_than_80_chars +// ignore_for_file: no_leading_underscores_for_library_prefixes +// ignore_for_file: no_leading_underscores_for_local_identifiers +// ignore_for_file: non_constant_identifier_names +// ignore_for_file: only_throw_errors +// ignore_for_file: overridden_fields +// ignore_for_file: prefer_double_quotes +// ignore_for_file: unintended_html_in_doc_comment +// ignore_for_file: unnecessary_cast +// ignore_for_file: unnecessary_non_null_assertion +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: unused_element +// ignore_for_file: unused_field +// ignore_for_file: unused_import +// ignore_for_file: unused_local_variable +// ignore_for_file: unused_shown_name +// ignore_for_file: use_super_parameters + +import 'dart:core' show Object, String, bool, double, int; +import 'dart:core' as core$_; + +import 'package:jni/_internal.dart' as jni$_; +import 'package:jni/jni.dart' as jni$_; + +import 'Iterator.dart' as iterator$_; + +/// from: `java.util.List` +extension type List<$E extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { + static final _class = jni$_.JClass.forName(r'java/util/List'); + + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $List$Type$(); + static final _id_size = _class.instanceMethodId( + r'size', + r'()I', + ); + + static final _size = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract int size()` + int size() { + return _size(reference.pointer, _id_size as jni$_.JMethodIDPtr).integer; + } + + static final _id_isEmpty = _class.instanceMethodId( + r'isEmpty', + r'()Z', + ); + + static final _isEmpty = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract boolean isEmpty()` + bool isEmpty() { + return _isEmpty(reference.pointer, _id_isEmpty as jni$_.JMethodIDPtr) + .boolean; + } + + static final _id_contains = _class.instanceMethodId( + r'contains', + r'(Ljava/lang/Object;)Z', + ); + + static final _contains = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean contains(java.lang.Object object)` + bool contains( + jni$_.JObject? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _contains(reference.pointer, _id_contains as jni$_.JMethodIDPtr, + _$object.pointer) + .boolean; + } + + static final _id_iterator = _class.instanceMethodId( + r'iterator', + r'()Ljava/util/Iterator;', + ); + + static final _iterator = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract java.util.Iterator iterator()` + /// The returned object must be released after use, by calling the [release] method. + iterator$_.Iterator<$E?>? iterator() { + return _iterator(reference.pointer, _id_iterator as jni$_.JMethodIDPtr) + .object?>(); + } + + static final _id_toArray = _class.instanceMethodId( + r'toArray', + r'()[Ljava/lang/Object;', + ); + + static final _toArray = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract java.lang.Object[] toArray()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray? toArray() { + return _toArray(reference.pointer, _id_toArray as jni$_.JMethodIDPtr) + .object?>(); + } + + static final _id_toArray$1 = _class.instanceMethodId( + r'toArray', + r'([Ljava/lang/Object;)[Ljava/lang/Object;', + ); + + static final _toArray$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract T[] toArray(T[] objects)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JArray<$T?>? toArray$1<$T extends jni$_.JObject?>( + jni$_.JArray<$T?>? objects, + ) { + final _$objects = objects?.reference ?? jni$_.jNullReference; + return _toArray$1(reference.pointer, _id_toArray$1 as jni$_.JMethodIDPtr, + _$objects.pointer) + .object?>(); + } + + static final _id_add = _class.instanceMethodId( + r'add', + r'(Ljava/lang/Object;)Z', + ); + + static final _add = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean add(E object)` + bool add( + $E? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _add( + reference.pointer, _id_add as jni$_.JMethodIDPtr, _$object.pointer) + .boolean; + } + + static final _id_remove = _class.instanceMethodId( + r'remove', + r'(Ljava/lang/Object;)Z', + ); + + static final _remove = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean remove(java.lang.Object object)` + bool remove( + jni$_.JObject? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _remove(reference.pointer, _id_remove as jni$_.JMethodIDPtr, + _$object.pointer) + .boolean; + } + + static final _id_containsAll = _class.instanceMethodId( + r'containsAll', + r'(Ljava/util/Collection;)Z', + ); + + static final _containsAll = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean containsAll(java.util.Collection collection)` + bool containsAll( + jni$_.JObject? collection, + ) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + return _containsAll(reference.pointer, + _id_containsAll as jni$_.JMethodIDPtr, _$collection.pointer) + .boolean; + } + + static final _id_addAll = _class.instanceMethodId( + r'addAll', + r'(Ljava/util/Collection;)Z', + ); + + static final _addAll = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean addAll(java.util.Collection collection)` + bool addAll( + jni$_.JObject? collection, + ) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + return _addAll(reference.pointer, _id_addAll as jni$_.JMethodIDPtr, + _$collection.pointer) + .boolean; + } + + static final _id_addAll$1 = _class.instanceMethodId( + r'addAll', + r'(ILjava/util/Collection;)Z', + ); + + static final _addAll$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_ + .VarArgs<(jni$_.Int32, jni$_.Pointer)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, int, jni$_.Pointer)>(); + + /// from: `public abstract boolean addAll(int i, java.util.Collection collection)` + bool addAll$1( + int i, + jni$_.JObject? collection, + ) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + return _addAll$1(reference.pointer, _id_addAll$1 as jni$_.JMethodIDPtr, i, + _$collection.pointer) + .boolean; + } + + static final _id_removeAll = _class.instanceMethodId( + r'removeAll', + r'(Ljava/util/Collection;)Z', + ); + + static final _removeAll = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean removeAll(java.util.Collection collection)` + bool removeAll( + jni$_.JObject? collection, + ) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + return _removeAll(reference.pointer, _id_removeAll as jni$_.JMethodIDPtr, + _$collection.pointer) + .boolean; + } + + static final _id_retainAll = _class.instanceMethodId( + r'retainAll', + r'(Ljava/util/Collection;)Z', + ); + + static final _retainAll = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean retainAll(java.util.Collection collection)` + bool retainAll( + jni$_.JObject? collection, + ) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + return _retainAll(reference.pointer, _id_retainAll as jni$_.JMethodIDPtr, + _$collection.pointer) + .boolean; + } + + static final _id_replaceAll = _class.instanceMethodId( + r'replaceAll', + r'(Ljava/util/function/UnaryOperator;)V', + ); + + static final _replaceAll = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public void replaceAll(java.util.function.UnaryOperator unaryOperator)` + void replaceAll( + jni$_.JObject? unaryOperator, + ) { + final _$unaryOperator = unaryOperator?.reference ?? jni$_.jNullReference; + _replaceAll(reference.pointer, _id_replaceAll as jni$_.JMethodIDPtr, + _$unaryOperator.pointer) + .check(); + } + + static final _id_sort = _class.instanceMethodId( + r'sort', + r'(Ljava/util/Comparator;)V', + ); + + static final _sort = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public void sort(java.util.Comparator comparator)` + void sort( + jni$_.JObject? comparator, + ) { + final _$comparator = comparator?.reference ?? jni$_.jNullReference; + _sort(reference.pointer, _id_sort as jni$_.JMethodIDPtr, + _$comparator.pointer) + .check(); + } + + static final _id_clear = _class.instanceMethodId( + r'clear', + r'()V', + ); + + static final _clear = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract void clear()` + void clear() { + _clear(reference.pointer, _id_clear as jni$_.JMethodIDPtr).check(); + } + + static final _id_equals = _class.instanceMethodId( + r'equals', + r'(Ljava/lang/Object;)Z', + ); + + static final _equals = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallBooleanMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract boolean equals(java.lang.Object object)` + bool equals( + jni$_.JObject? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _equals(reference.pointer, _id_equals as jni$_.JMethodIDPtr, + _$object.pointer) + .boolean; + } + + static final _id_hashCode$1 = _class.instanceMethodId( + r'hashCode', + r'()I', + ); + + static final _hashCode$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract int hashCode()` + int hashCode$1() { + return _hashCode$1(reference.pointer, _id_hashCode$1 as jni$_.JMethodIDPtr) + .integer; + } + + static final _id_get = _class.instanceMethodId( + r'get', + r'(I)Ljava/lang/Object;', + ); + + static final _get = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>)>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, jni$_.JMethodIDPtr, int)>(); + + /// from: `public abstract E get(int i)` + /// The returned object must be released after use, by calling the [release] method. + $E? get( + int i, + ) { + return _get(reference.pointer, _id_get as jni$_.JMethodIDPtr, i) + .object<$E?>(); + } + + static final _id_set = _class.instanceMethodId( + r'set', + r'(ILjava/lang/Object;)Ljava/lang/Object;', + ); + + static final _set = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_ + .VarArgs<(jni$_.Int32, jni$_.Pointer)>)>>( + 'globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, int, jni$_.Pointer)>(); + + /// from: `public abstract E set(int i, E object)` + /// The returned object must be released after use, by calling the [release] method. + $E? set( + int i, + $E? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _set(reference.pointer, _id_set as jni$_.JMethodIDPtr, i, + _$object.pointer) + .object<$E?>(); + } + + static final _id_add$1 = _class.instanceMethodId( + r'add', + r'(ILjava/lang/Object;)V', + ); + + static final _add$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_ + .VarArgs<(jni$_.Int32, jni$_.Pointer)>)>>( + 'globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function(jni$_.Pointer, + jni$_.JMethodIDPtr, int, jni$_.Pointer)>(); + + /// from: `public abstract void add(int i, E object)` + void add$1( + int i, + $E? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + _add$1(reference.pointer, _id_add$1 as jni$_.JMethodIDPtr, i, + _$object.pointer) + .check(); + } + + static final _id_remove$1 = _class.instanceMethodId( + r'remove', + r'(I)Ljava/lang/Object;', + ); + + static final _remove$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>)>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, jni$_.JMethodIDPtr, int)>(); + + /// from: `public abstract E remove(int i)` + /// The returned object must be released after use, by calling the [release] method. + $E? remove$1( + int i, + ) { + return _remove$1(reference.pointer, _id_remove$1 as jni$_.JMethodIDPtr, i) + .object<$E?>(); + } + + static final _id_indexOf = _class.instanceMethodId( + r'indexOf', + r'(Ljava/lang/Object;)I', + ); + + static final _indexOf = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract int indexOf(java.lang.Object object)` + int indexOf( + jni$_.JObject? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _indexOf(reference.pointer, _id_indexOf as jni$_.JMethodIDPtr, + _$object.pointer) + .integer; + } + + static final _id_lastIndexOf = _class.instanceMethodId( + r'lastIndexOf', + r'(Ljava/lang/Object;)I', + ); + + static final _lastIndexOf = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallIntMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `public abstract int lastIndexOf(java.lang.Object object)` + int lastIndexOf( + jni$_.JObject? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _lastIndexOf(reference.pointer, + _id_lastIndexOf as jni$_.JMethodIDPtr, _$object.pointer) + .integer; + } + + static final _id_listIterator = _class.instanceMethodId( + r'listIterator', + r'()Ljava/util/ListIterator;', + ); + + static final _listIterator = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public abstract java.util.ListIterator listIterator()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? listIterator() { + return _listIterator( + reference.pointer, _id_listIterator as jni$_.JMethodIDPtr) + .object(); + } + + static final _id_listIterator$1 = _class.instanceMethodId( + r'listIterator', + r'(I)Ljava/util/ListIterator;', + ); + + static final _listIterator$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32,)>)>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, jni$_.JMethodIDPtr, int)>(); + + /// from: `public abstract java.util.ListIterator listIterator(int i)` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? listIterator$1( + int i, + ) { + return _listIterator$1( + reference.pointer, _id_listIterator$1 as jni$_.JMethodIDPtr, i) + .object(); + } + + static final _id_subList = _class.instanceMethodId( + r'subList', + r'(II)Ljava/util/List;', + ); + + static final _subList = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Int32, jni$_.Int32)>)>>( + 'globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, jni$_.JMethodIDPtr, int, int)>(); + + /// from: `public abstract java.util.List subList(int i, int i1)` + /// The returned object must be released after use, by calling the [release] method. + List<$E?>? subList( + int i, + int i1, + ) { + return _subList(reference.pointer, _id_subList as jni$_.JMethodIDPtr, i, i1) + .object?>(); + } + + static final _id_spliterator = _class.instanceMethodId( + r'spliterator', + r'()Ljava/util/Spliterator;', + ); + + static final _spliterator = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `public java.util.Spliterator spliterator()` + /// The returned object must be released after use, by calling the [release] method. + jni$_.JObject? spliterator() { + return _spliterator( + reference.pointer, _id_spliterator as jni$_.JMethodIDPtr) + .object(); + } + + static final _id_of = _class.staticMethodId( + r'of', + r'()Ljava/util/List;', + ); + + static final _of = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); + + /// from: `static public java.util.List of()` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of<$E extends jni$_.JObject?>() { + return _of(_class.reference.pointer, _id_of as jni$_.JMethodIDPtr) + .object?>(); + } + + static final _id_of$1 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$1 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$1<$E extends jni$_.JObject?>( + $E? object, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + return _of$1(_class.reference.pointer, _id_of$1 as jni$_.JMethodIDPtr, + _$object.pointer) + .object?>(); + } + + static final _id_of$2 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$2 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$2<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + return _of$2(_class.reference.pointer, _id_of$2 as jni$_.JMethodIDPtr, + _$object.pointer, _$object1.pointer) + .object?>(); + } + + static final _id_of$3 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$3 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$3<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + return _of$3(_class.reference.pointer, _id_of$3 as jni$_.JMethodIDPtr, + _$object.pointer, _$object1.pointer, _$object2.pointer) + .object?>(); + } + + static final _id_of$4 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$4 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$4<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + return _of$4( + _class.reference.pointer, + _id_of$4 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer) + .object?>(); + } + + static final _id_of$5 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$5 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3, E object4)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$5<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + $E? object4, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + final _$object4 = object4?.reference ?? jni$_.jNullReference; + return _of$5( + _class.reference.pointer, + _id_of$5 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer, + _$object4.pointer) + .object?>(); + } + + static final _id_of$6 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$6 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3, E object4, E object5)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$6<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + $E? object4, + $E? object5, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + final _$object4 = object4?.reference ?? jni$_.jNullReference; + final _$object5 = object5?.reference ?? jni$_.jNullReference; + return _of$6( + _class.reference.pointer, + _id_of$6 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer, + _$object4.pointer, + _$object5.pointer) + .object?>(); + } + + static final _id_of$7 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$7 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3, E object4, E object5, E object6)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$7<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + $E? object4, + $E? object5, + $E? object6, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + final _$object4 = object4?.reference ?? jni$_.jNullReference; + final _$object5 = object5?.reference ?? jni$_.jNullReference; + final _$object6 = object6?.reference ?? jni$_.jNullReference; + return _of$7( + _class.reference.pointer, + _id_of$7 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer, + _$object4.pointer, + _$object5.pointer, + _$object6.pointer) + .object?>(); + } + + static final _id_of$8 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$8 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3, E object4, E object5, E object6, E object7)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$8<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + $E? object4, + $E? object5, + $E? object6, + $E? object7, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + final _$object4 = object4?.reference ?? jni$_.jNullReference; + final _$object5 = object5?.reference ?? jni$_.jNullReference; + final _$object6 = object6?.reference ?? jni$_.jNullReference; + final _$object7 = object7?.reference ?? jni$_.jNullReference; + return _of$8( + _class.reference.pointer, + _id_of$8 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer, + _$object4.pointer, + _$object5.pointer, + _$object6.pointer, + _$object7.pointer) + .object?>(); + } + + static final _id_of$9 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$9 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3, E object4, E object5, E object6, E object7, E object8)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$9<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + $E? object4, + $E? object5, + $E? object6, + $E? object7, + $E? object8, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + final _$object4 = object4?.reference ?? jni$_.jNullReference; + final _$object5 = object5?.reference ?? jni$_.jNullReference; + final _$object6 = object6?.reference ?? jni$_.jNullReference; + final _$object7 = object7?.reference ?? jni$_.jNullReference; + final _$object8 = object8?.reference ?? jni$_.jNullReference; + return _of$9( + _class.reference.pointer, + _id_of$9 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer, + _$object4.pointer, + _$object5.pointer, + _$object6.pointer, + _$object7.pointer, + _$object8.pointer) + .object?>(); + } + + static final _id_of$10 = _class.staticMethodId( + r'of', + r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$10 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs< + ( + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer + )>)>>('globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer, + jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E object, E object1, E object2, E object3, E object4, E object5, E object6, E object7, E object8, E object9)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$10<$E extends jni$_.JObject?>( + $E? object, + $E? object1, + $E? object2, + $E? object3, + $E? object4, + $E? object5, + $E? object6, + $E? object7, + $E? object8, + $E? object9, + ) { + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + final _$object2 = object2?.reference ?? jni$_.jNullReference; + final _$object3 = object3?.reference ?? jni$_.jNullReference; + final _$object4 = object4?.reference ?? jni$_.jNullReference; + final _$object5 = object5?.reference ?? jni$_.jNullReference; + final _$object6 = object6?.reference ?? jni$_.jNullReference; + final _$object7 = object7?.reference ?? jni$_.jNullReference; + final _$object8 = object8?.reference ?? jni$_.jNullReference; + final _$object9 = object9?.reference ?? jni$_.jNullReference; + return _of$10( + _class.reference.pointer, + _id_of$10 as jni$_.JMethodIDPtr, + _$object.pointer, + _$object1.pointer, + _$object2.pointer, + _$object3.pointer, + _$object4.pointer, + _$object5.pointer, + _$object6.pointer, + _$object7.pointer, + _$object8.pointer, + _$object9.pointer) + .object?>(); + } + + static final _id_of$11 = _class.staticMethodId( + r'of', + r'([Ljava/lang/Object;)Ljava/util/List;', + ); + + static final _of$11 = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `static public java.util.List of(E[] objects)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? of$11<$E extends jni$_.JObject?>( + jni$_.JArray<$E?>? objects, + ) { + final _$objects = objects?.reference ?? jni$_.jNullReference; + return _of$11(_class.reference.pointer, _id_of$11 as jni$_.JMethodIDPtr, + _$objects.pointer) + .object?>(); + } + + static final _id_copyOf = _class.staticMethodId( + r'copyOf', + r'(Ljava/util/Collection;)Ljava/util/List;', + ); + + static final _copyOf = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + jni$_.VarArgs<(jni$_.Pointer,)>)>>( + 'globalEnv_CallStaticObjectMethod') + .asFunction< + jni$_.JniResult Function(jni$_.Pointer, + jni$_.JMethodIDPtr, jni$_.Pointer)>(); + + /// from: `static public java.util.List copyOf(java.util.Collection collection)` + /// The returned object must be released after use, by calling the [release] method. + static List<$E?>? copyOf<$E extends jni$_.JObject?>( + jni$_.JObject? collection, + ) { + final _$collection = collection?.reference ?? jni$_.jNullReference; + return _copyOf(_class.reference.pointer, _id_copyOf as jni$_.JMethodIDPtr, + _$collection.pointer) + .object?>(); + } + + /// Maps a specific port to the implemented interface. + static final core$_.Map _$impls = {}; + static jni$_.JObjectPtr _$invoke( + int port, + jni$_.JObjectPtr descriptor, + jni$_.JObjectPtr args, + ) { + return _$invokeMethod( + port, + jni$_.MethodInvocation.fromAddresses( + 0, + descriptor.address, + args.address, + ), + ); + } + + static final jni$_.Pointer< + jni$_.NativeFunction< + jni$_.JObjectPtr Function( + jni$_.Int64, jni$_.JObjectPtr, jni$_.JObjectPtr)>> + _$invokePointer = jni$_.Pointer.fromFunction(_$invoke); + + static jni$_.Pointer _$invokeMethod( + int $p, + jni$_.MethodInvocation $i, + ) { + try { + final $d = $i.methodDescriptor.toDartString(releaseOriginal: true); + final $a = $i.args; + if ($d == r'size()I') { + final $r = _$impls[$p]!.size(); + return jni$_.JInteger($r).reference.toPointer(); + } + if ($d == r'isEmpty()Z') { + final $r = _$impls[$p]!.isEmpty(); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'contains(Ljava/lang/Object;)Z') { + final $r = _$impls[$p]!.contains( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'iterator()Ljava/util/Iterator;') { + final $r = _$impls[$p]!.iterator(); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'toArray()[Ljava/lang/Object;') { + final $r = _$impls[$p]!.toArray(); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'toArray([Ljava/lang/Object;)[Ljava/lang/Object;') { + final $r = _$impls[$p]!.toArray$1( + $a![0], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'add(Ljava/lang/Object;)Z') { + final $r = _$impls[$p]!.add( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'remove(Ljava/lang/Object;)Z') { + final $r = _$impls[$p]!.remove( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'containsAll(Ljava/util/Collection;)Z') { + final $r = _$impls[$p]!.containsAll( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'addAll(Ljava/util/Collection;)Z') { + final $r = _$impls[$p]!.addAll( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'addAll(ILjava/util/Collection;)Z') { + final $r = _$impls[$p]!.addAll$1( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + $a![1], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'removeAll(Ljava/util/Collection;)Z') { + final $r = _$impls[$p]!.removeAll( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'retainAll(Ljava/util/Collection;)Z') { + final $r = _$impls[$p]!.retainAll( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'replaceAll(Ljava/util/function/UnaryOperator;)V') { + _$impls[$p]!.replaceAll( + $a![0], + ); + return jni$_.nullptr; + } + if ($d == r'sort(Ljava/util/Comparator;)V') { + _$impls[$p]!.sort( + $a![0], + ); + return jni$_.nullptr; + } + if ($d == r'clear()V') { + _$impls[$p]!.clear(); + return jni$_.nullptr; + } + if ($d == r'equals(Ljava/lang/Object;)Z') { + final $r = _$impls[$p]!.equals( + $a![0], + ); + return jni$_.JBoolean($r).reference.toPointer(); + } + if ($d == r'hashCode()I') { + final $r = _$impls[$p]!.hashCode$1(); + return jni$_.JInteger($r).reference.toPointer(); + } + if ($d == r'get(I)Ljava/lang/Object;') { + final $r = _$impls[$p]!.get( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'set(ILjava/lang/Object;)Ljava/lang/Object;') { + final $r = _$impls[$p]!.set( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + $a![1], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'add(ILjava/lang/Object;)V') { + _$impls[$p]!.add$1( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + $a![1], + ); + return jni$_.nullptr; + } + if ($d == r'remove(I)Ljava/lang/Object;') { + final $r = _$impls[$p]!.remove$1( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'indexOf(Ljava/lang/Object;)I') { + final $r = _$impls[$p]!.indexOf( + $a![0], + ); + return jni$_.JInteger($r).reference.toPointer(); + } + if ($d == r'lastIndexOf(Ljava/lang/Object;)I') { + final $r = _$impls[$p]!.lastIndexOf( + $a![0], + ); + return jni$_.JInteger($r).reference.toPointer(); + } + if ($d == r'listIterator()Ljava/util/ListIterator;') { + final $r = _$impls[$p]!.listIterator(); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'listIterator(I)Ljava/util/ListIterator;') { + final $r = _$impls[$p]!.listIterator$1( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'subList(II)Ljava/util/List;') { + final $r = _$impls[$p]!.subList( + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + ($a![1] as jni$_.JInteger).intValue(releaseOriginal: true), + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'spliterator()Ljava/util/Spliterator;') { + final $r = _$impls[$p]!.spliterator(); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'of()Ljava/util/List;') { + final $r = _$impls[$p]!.of(); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'of(Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$1( + $a![0], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'of(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$2( + $a![0], + $a![1], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$3( + $a![0], + $a![1], + $a![2], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$4( + $a![0], + $a![1], + $a![2], + $a![3], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$5( + $a![0], + $a![1], + $a![2], + $a![3], + $a![4], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$6( + $a![0], + $a![1], + $a![2], + $a![3], + $a![4], + $a![5], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$7( + $a![0], + $a![1], + $a![2], + $a![3], + $a![4], + $a![5], + $a![6], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$8( + $a![0], + $a![1], + $a![2], + $a![3], + $a![4], + $a![5], + $a![6], + $a![7], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$9( + $a![0], + $a![1], + $a![2], + $a![3], + $a![4], + $a![5], + $a![6], + $a![7], + $a![8], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == + r'of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$10( + $a![0], + $a![1], + $a![2], + $a![3], + $a![4], + $a![5], + $a![6], + $a![7], + $a![8], + $a![9], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'of([Ljava/lang/Object;)Ljava/util/List;') { + final $r = _$impls[$p]!.of$11( + $a![0], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + if ($d == r'copyOf(Ljava/util/Collection;)Ljava/util/List;') { + final $r = _$impls[$p]!.copyOf( + $a![0], + ); + return ($r as jni$_.JObject?) + ?.as(const jni$_.$JObject$Type$()) + .reference + .toPointer() ?? + jni$_.nullptr; + } + } catch (e) { + return jni$_.ProtectedJniExtensions.newDartException(e); + } + return jni$_.nullptr; + } + + static void implementIn<$E extends jni$_.JObject?>( + jni$_.JImplementer implementer, + $List<$E> $impl, + ) { + late final jni$_.RawReceivePort $p; + $p = jni$_.RawReceivePort(($m) { + if ($m == null) { + _$impls.remove($p.sendPort.nativePort); + $p.close(); + return; + } + final $i = jni$_.MethodInvocation.fromMessage($m); + final $r = _$invokeMethod($p.sendPort.nativePort, $i); + jni$_.ProtectedJniExtensions.returnResult($i.result, $r); + }); + implementer.add( + r'java.util.List', + $p, + _$invokePointer, + [ + if ($impl.replaceAll$async) + r'replaceAll(Ljava/util/function/UnaryOperator;)V', + if ($impl.sort$async) r'sort(Ljava/util/Comparator;)V', + if ($impl.clear$async) r'clear()V', + if ($impl.add$1$async) r'add(ILjava/lang/Object;)V', + ], + ); + final $a = $p.sendPort.nativePort; + _$impls[$a] = $impl; + } + + factory List.implement( + $List<$E> $impl, + ) { + final $i = jni$_.JImplementer(); + implementIn($i, $impl); + return $i.implement>(); + } +} + +abstract base mixin class $List<$E extends jni$_.JObject?> { + factory $List({ + required int Function() size, + required bool Function() isEmpty, + required bool Function(jni$_.JObject? object) contains, + required iterator$_.Iterator? Function() iterator, + required jni$_.JArray? Function() toArray, + required jni$_.JArray? Function( + jni$_.JArray? objects) + toArray$1, + required bool Function($E? object) add, + required bool Function(jni$_.JObject? object) remove, + required bool Function(jni$_.JObject? collection) containsAll, + required bool Function(jni$_.JObject? collection) addAll, + required bool Function(int i, jni$_.JObject? collection) addAll$1, + required bool Function(jni$_.JObject? collection) removeAll, + required bool Function(jni$_.JObject? collection) retainAll, + required void Function(jni$_.JObject? unaryOperator) replaceAll, + bool replaceAll$async, + required void Function(jni$_.JObject? comparator) sort, + bool sort$async, + required void Function() clear, + bool clear$async, + required bool Function(jni$_.JObject? object) equals, + required int Function() hashCode$1, + required $E? Function(int i) get, + required $E? Function(int i, $E? object) set, + required void Function(int i, $E? object) add$1, + bool add$1$async, + required $E? Function(int i) remove$1, + required int Function(jni$_.JObject? object) indexOf, + required int Function(jni$_.JObject? object) lastIndexOf, + required jni$_.JObject? Function() listIterator, + required jni$_.JObject? Function(int i) listIterator$1, + required List? Function(int i, int i1) subList, + required jni$_.JObject? Function() spliterator, + required List? Function() of, + required List? Function(jni$_.JObject? object) of$1, + required List? Function( + jni$_.JObject? object, jni$_.JObject? object1) + of$2, + required List? Function(jni$_.JObject? object, + jni$_.JObject? object1, jni$_.JObject? object2) + of$3, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3) + of$4, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4) + of$5, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5) + of$6, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6) + of$7, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7) + of$8, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8) + of$9, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8, + jni$_.JObject? object9) + of$10, + required List? Function( + jni$_.JArray? objects) + of$11, + required List? Function(jni$_.JObject? collection) copyOf, + }) = _$List<$E>; + + int size(); + bool isEmpty(); + bool contains(jni$_.JObject? object); + iterator$_.Iterator? iterator(); + jni$_.JArray? toArray(); + jni$_.JArray? toArray$1( + jni$_.JArray? objects); + bool add($E? object); + bool remove(jni$_.JObject? object); + bool containsAll(jni$_.JObject? collection); + bool addAll(jni$_.JObject? collection); + bool addAll$1(int i, jni$_.JObject? collection); + bool removeAll(jni$_.JObject? collection); + bool retainAll(jni$_.JObject? collection); + void replaceAll(jni$_.JObject? unaryOperator); + bool get replaceAll$async => false; + void sort(jni$_.JObject? comparator); + bool get sort$async => false; + void clear(); + bool get clear$async => false; + bool equals(jni$_.JObject? object); + int hashCode$1(); + $E? get(int i); + $E? set(int i, $E? object); + void add$1(int i, $E? object); + bool get add$1$async => false; + $E? remove$1(int i); + int indexOf(jni$_.JObject? object); + int lastIndexOf(jni$_.JObject? object); + jni$_.JObject? listIterator(); + jni$_.JObject? listIterator$1(int i); + List? subList(int i, int i1); + jni$_.JObject? spliterator(); + List? of(); + List? of$1(jni$_.JObject? object); + List? of$2(jni$_.JObject? object, jni$_.JObject? object1); + List? of$3( + jni$_.JObject? object, jni$_.JObject? object1, jni$_.JObject? object2); + List? of$4(jni$_.JObject? object, jni$_.JObject? object1, + jni$_.JObject? object2, jni$_.JObject? object3); + List? of$5(jni$_.JObject? object, jni$_.JObject? object1, + jni$_.JObject? object2, jni$_.JObject? object3, jni$_.JObject? object4); + List? of$6( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5); + List? of$7( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6); + List? of$8( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7); + List? of$9( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8); + List? of$10( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8, + jni$_.JObject? object9); + List? of$11(jni$_.JArray? objects); + List? copyOf(jni$_.JObject? collection); +} + +final class _$List<$E extends jni$_.JObject?> with $List<$E> { + _$List({ + required int Function() size, + required bool Function() isEmpty, + required bool Function(jni$_.JObject? object) contains, + required iterator$_.Iterator? Function() iterator, + required jni$_.JArray? Function() toArray, + required jni$_.JArray? Function( + jni$_.JArray? objects) + toArray$1, + required bool Function($E? object) add, + required bool Function(jni$_.JObject? object) remove, + required bool Function(jni$_.JObject? collection) containsAll, + required bool Function(jni$_.JObject? collection) addAll, + required bool Function(int i, jni$_.JObject? collection) addAll$1, + required bool Function(jni$_.JObject? collection) removeAll, + required bool Function(jni$_.JObject? collection) retainAll, + required void Function(jni$_.JObject? unaryOperator) replaceAll, + this.replaceAll$async = false, + required void Function(jni$_.JObject? comparator) sort, + this.sort$async = false, + required void Function() clear, + this.clear$async = false, + required bool Function(jni$_.JObject? object) equals, + required int Function() hashCode$1, + required $E? Function(int i) get, + required $E? Function(int i, $E? object) set, + required void Function(int i, $E? object) add$1, + this.add$1$async = false, + required $E? Function(int i) remove$1, + required int Function(jni$_.JObject? object) indexOf, + required int Function(jni$_.JObject? object) lastIndexOf, + required jni$_.JObject? Function() listIterator, + required jni$_.JObject? Function(int i) listIterator$1, + required List? Function(int i, int i1) subList, + required jni$_.JObject? Function() spliterator, + required List? Function() of, + required List? Function(jni$_.JObject? object) of$1, + required List? Function( + jni$_.JObject? object, jni$_.JObject? object1) + of$2, + required List? Function(jni$_.JObject? object, + jni$_.JObject? object1, jni$_.JObject? object2) + of$3, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3) + of$4, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4) + of$5, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5) + of$6, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6) + of$7, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7) + of$8, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8) + of$9, + required List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8, + jni$_.JObject? object9) + of$10, + required List? Function( + jni$_.JArray? objects) + of$11, + required List? Function(jni$_.JObject? collection) copyOf, + }) : _size = size, + _isEmpty = isEmpty, + _contains = contains, + _iterator = iterator, + _toArray = toArray, + _toArray$1 = toArray$1, + _add = add, + _remove = remove, + _containsAll = containsAll, + _addAll = addAll, + _addAll$1 = addAll$1, + _removeAll = removeAll, + _retainAll = retainAll, + _replaceAll = replaceAll, + _sort = sort, + _clear = clear, + _equals = equals, + _hashCode$1 = hashCode$1, + _get = get, + _set = set, + _add$1 = add$1, + _remove$1 = remove$1, + _indexOf = indexOf, + _lastIndexOf = lastIndexOf, + _listIterator = listIterator, + _listIterator$1 = listIterator$1, + _subList = subList, + _spliterator = spliterator, + _of = of, + _of$1 = of$1, + _of$2 = of$2, + _of$3 = of$3, + _of$4 = of$4, + _of$5 = of$5, + _of$6 = of$6, + _of$7 = of$7, + _of$8 = of$8, + _of$9 = of$9, + _of$10 = of$10, + _of$11 = of$11, + _copyOf = copyOf; + + final int Function() _size; + final bool Function() _isEmpty; + final bool Function(jni$_.JObject? object) _contains; + final iterator$_.Iterator? Function() _iterator; + final jni$_.JArray? Function() _toArray; + final jni$_.JArray? Function( + jni$_.JArray? objects) _toArray$1; + final bool Function($E? object) _add; + final bool Function(jni$_.JObject? object) _remove; + final bool Function(jni$_.JObject? collection) _containsAll; + final bool Function(jni$_.JObject? collection) _addAll; + final bool Function(int i, jni$_.JObject? collection) _addAll$1; + final bool Function(jni$_.JObject? collection) _removeAll; + final bool Function(jni$_.JObject? collection) _retainAll; + final void Function(jni$_.JObject? unaryOperator) _replaceAll; + final bool replaceAll$async; + final void Function(jni$_.JObject? comparator) _sort; + final bool sort$async; + final void Function() _clear; + final bool clear$async; + final bool Function(jni$_.JObject? object) _equals; + final int Function() _hashCode$1; + final $E? Function(int i) _get; + final $E? Function(int i, $E? object) _set; + final void Function(int i, $E? object) _add$1; + final bool add$1$async; + final $E? Function(int i) _remove$1; + final int Function(jni$_.JObject? object) _indexOf; + final int Function(jni$_.JObject? object) _lastIndexOf; + final jni$_.JObject? Function() _listIterator; + final jni$_.JObject? Function(int i) _listIterator$1; + final List? Function(int i, int i1) _subList; + final jni$_.JObject? Function() _spliterator; + final List? Function() _of; + final List? Function(jni$_.JObject? object) _of$1; + final List? Function( + jni$_.JObject? object, jni$_.JObject? object1) _of$2; + final List? Function( + jni$_.JObject? object, jni$_.JObject? object1, jni$_.JObject? object2) + _of$3; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3) _of$4; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4) _of$5; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5) _of$6; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6) _of$7; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7) _of$8; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8) _of$9; + final List? Function( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8, + jni$_.JObject? object9) _of$10; + final List? Function(jni$_.JArray? objects) + _of$11; + final List? Function(jni$_.JObject? collection) _copyOf; + + int size() { + return _size(); + } + + bool isEmpty() { + return _isEmpty(); + } + + bool contains(jni$_.JObject? object) { + return _contains(object); + } + + iterator$_.Iterator? iterator() { + return _iterator(); + } + + jni$_.JArray? toArray() { + return _toArray(); + } + + jni$_.JArray? toArray$1( + jni$_.JArray? objects) { + return _toArray$1(objects); + } + + bool add($E? object) { + return _add(object); + } + + bool remove(jni$_.JObject? object) { + return _remove(object); + } + + bool containsAll(jni$_.JObject? collection) { + return _containsAll(collection); + } + + bool addAll(jni$_.JObject? collection) { + return _addAll(collection); + } + + bool addAll$1(int i, jni$_.JObject? collection) { + return _addAll$1(i, collection); + } + + bool removeAll(jni$_.JObject? collection) { + return _removeAll(collection); + } + + bool retainAll(jni$_.JObject? collection) { + return _retainAll(collection); + } + + void replaceAll(jni$_.JObject? unaryOperator) { + return _replaceAll(unaryOperator); + } + + void sort(jni$_.JObject? comparator) { + return _sort(comparator); + } + + void clear() { + return _clear(); + } + + bool equals(jni$_.JObject? object) { + return _equals(object); + } + + int hashCode$1() { + return _hashCode$1(); + } + + $E? get(int i) { + return _get(i); + } + + $E? set(int i, $E? object) { + return _set(i, object); + } + + void add$1(int i, $E? object) { + return _add$1(i, object); + } + + $E? remove$1(int i) { + return _remove$1(i); + } + + int indexOf(jni$_.JObject? object) { + return _indexOf(object); + } + + int lastIndexOf(jni$_.JObject? object) { + return _lastIndexOf(object); + } + + jni$_.JObject? listIterator() { + return _listIterator(); + } + + jni$_.JObject? listIterator$1(int i) { + return _listIterator$1(i); + } + + List? subList(int i, int i1) { + return _subList(i, i1); + } + + jni$_.JObject? spliterator() { + return _spliterator(); + } + + List? of() { + return _of(); + } + + List? of$1(jni$_.JObject? object) { + return _of$1(object); + } + + List? of$2(jni$_.JObject? object, jni$_.JObject? object1) { + return _of$2(object, object1); + } + + List? of$3( + jni$_.JObject? object, jni$_.JObject? object1, jni$_.JObject? object2) { + return _of$3(object, object1, object2); + } + + List? of$4(jni$_.JObject? object, jni$_.JObject? object1, + jni$_.JObject? object2, jni$_.JObject? object3) { + return _of$4(object, object1, object2, object3); + } + + List? of$5(jni$_.JObject? object, jni$_.JObject? object1, + jni$_.JObject? object2, jni$_.JObject? object3, jni$_.JObject? object4) { + return _of$5(object, object1, object2, object3, object4); + } + + List? of$6( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5) { + return _of$6(object, object1, object2, object3, object4, object5); + } + + List? of$7( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6) { + return _of$7(object, object1, object2, object3, object4, object5, object6); + } + + List? of$8( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7) { + return _of$8( + object, object1, object2, object3, object4, object5, object6, object7); + } + + List? of$9( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8) { + return _of$9(object, object1, object2, object3, object4, object5, object6, + object7, object8); + } + + List? of$10( + jni$_.JObject? object, + jni$_.JObject? object1, + jni$_.JObject? object2, + jni$_.JObject? object3, + jni$_.JObject? object4, + jni$_.JObject? object5, + jni$_.JObject? object6, + jni$_.JObject? object7, + jni$_.JObject? object8, + jni$_.JObject? object9) { + return _of$10(object, object1, object2, object3, object4, object5, object6, + object7, object8, object9); + } + + List? of$11(jni$_.JArray? objects) { + return _of$11(objects); + } + + List? copyOf(jni$_.JObject? collection) { + return _copyOf(collection); + } +} + +final class $List$Type$ extends jni$_.JType { + @jni$_.internal + const $List$Type$(); + + @jni$_.internal + @core$_.override + String get signature => r'Ljava/util/List;'; +} diff --git a/pkgs/jni/lib/core_bindings/java/util/_package.dart b/pkgs/jni/lib/core_bindings/java/util/_package.dart new file mode 100644 index 000000000..78ce06b12 --- /dev/null +++ b/pkgs/jni/lib/core_bindings/java/util/_package.dart @@ -0,0 +1,3 @@ +// AUTO GENERATED BY JNIGEN 0.15.0. DO NOT EDIT! +export 'List.dart'; +export 'Iterator.dart'; diff --git a/pkgs/jni/lib/jni.dart b/pkgs/jni/lib/jni.dart index 49ce91ddd..da012951c 100644 --- a/pkgs/jni/lib/jni.dart +++ b/pkgs/jni/lib/jni.dart @@ -66,7 +66,7 @@ export 'src/errors.dart'; export 'src/jarray.dart' hide $JArray$NullableType$, - $JArray$Type$, + _$JArray$Type$, $JBooleanArray$NullableType$, $JBooleanArray$Type$, $JByteArray$NullableType$, diff --git a/pkgs/jni/lib/src/accessors.dart b/pkgs/jni/lib/src/accessors.dart index 704caac34..7584f7d27 100644 --- a/pkgs/jni/lib/src/accessors.dart +++ b/pkgs/jni/lib/src/accessors.dart @@ -10,7 +10,6 @@ import 'jni.dart'; import 'jobject.dart'; import 'jreference.dart'; import 'third_party/generated_bindings.dart'; -import 'types.dart'; void _check(JThrowablePtr exception) { if (exception != nullptr) { @@ -72,8 +71,8 @@ extension JniResultMethods on JniResult { return pointer == nullptr ? jNullReference : JGlobalReference(pointer); } - T object(JType type) { - return type.fromReference(reference); + T object() { + return JObject.fromReference(reference) as T; } bool get boolean { diff --git a/pkgs/jni/lib/src/jarray.dart b/pkgs/jni/lib/src/jarray.dart index f614d9b87..1f82def75 100644 --- a/pkgs/jni/lib/src/jarray.dart +++ b/pkgs/jni/lib/src/jarray.dart @@ -2,139 +2,51 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// ignore_for_file: unnecessary_cast, overridden_fields - +import 'dart:collection'; import 'dart:ffi'; import 'dart:typed_data'; +import 'package:collection/collection.dart'; import 'package:ffi/ffi.dart'; -import 'package:meta/meta.dart' show internal; import 'jni.dart'; import 'jobject.dart'; import 'jreference.dart'; -import 'third_party/generated_bindings.dart'; import 'types.dart'; -@internal -final class $JArray$NullableType$ - extends JType?> { - final JType elementType; - - const $JArray$NullableType$(this.elementType); - - @override - String get signature => '[${elementType.signature}'; - - @override - JArray? fromReference(JReference reference) => - reference.isNull ? null : JArray.fromReference(elementType, reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType?> get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => Object.hash($JArray$NullableType$, elementType); - - @override - bool operator ==(Object other) { - return other.runtimeType == ($JArray$NullableType$) && - other is $JArray$NullableType$ && - elementType == other.elementType; - } -} +part 'primitive_jarrays.dart'; -@internal -final class $JArray$Type$ extends JType> { +final class _$JArray$Type$ extends JType> { final JType elementType; - const $JArray$Type$(this.elementType); - - @override - String get signature => '[${elementType.signature}'; - - @override - JArray fromReference(JReference reference) => - JArray.fromReference(elementType, reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType?> get nullableType => $JArray$NullableType$(elementType); - - @override - final int superCount = 1; - - @override - int get hashCode => Object.hash($JArray$Type$, elementType); - - @override - bool operator ==(Object other) { - return other.runtimeType == ($JArray$Type$) && - other is $JArray$Type$ && - elementType == other.elementType; - } + _$JArray$Type$(this.elementType) : super('[${elementType.signature}'); } -class JArray extends JObject with Iterable { - final JType elementType; - - @internal - @override - final JType> $type; - +extension type JArray._(JObject _$this) implements JObject { /// The type which includes information such as the signature of this class. static JType> type(JType innerType) => - $JArray$Type$(innerType); - - /// The type which includes information such as the signature of this class. - static JType?> nullableType( - JType innerType) => - $JArray$NullableType$(innerType); - - /// Construct a new [JArray] with [reference] as its underlying reference. - JArray.fromReference(this.elementType, JReference reference) - : $type = type(elementType), - super.fromReference(reference); + _$JArray$Type$(innerType); /// Creates a [JArray] of the given length from the given [elementType]. /// /// The [length] must be a non-negative integer. - /// For objects, [elementType] must be a nullable type as this constructor - /// initializes all elements with `null`. - factory JArray(JType elementType, int length) { + static JArray withLength( + JType elementType, int length) { RangeError.checkNotNegative(length); - if (!elementType.isNullable) { - throw ArgumentError.value( - elementType, - 'elementType', - 'Element type of JArray must be nullable when constructed with a ' - 'length (because the elements will be initialized to null).\n\n' - 'Try using .nullableType instead'); - } - return _newArray(elementType, length); + return _newArray(elementType.jClass, length); } - static JArray<$E> _newArray<$E extends JObject?>( - JType<$E> elementType, int length, + static JArray<$E> _newArray<$E extends JObject?>(JClass jClass, int length, [$E? fill]) { - final classRef = elementType.jClass.reference; + final classRef = jClass.reference; final fillRef = fill?.reference ?? jNullReference; - final array = JArray<$E>.fromReference( - elementType, + final array = JObject.fromReference( JGlobalReference(Jni.env.NewObjectArray( length, classRef.pointer, fillRef.pointer, )), - ); + ) as JArray<$E>; classRef.release(); return array; } @@ -143,35 +55,33 @@ class JArray extends JObject with Iterable { /// /// The [length] must be a non-negative integer. static JArray<$E> filled<$E extends JObject>(int length, $E fill, - {JType<$E>? E}) { + {JType<$E>? elementType}) { RangeError.checkNotNegative(length); - E ??= fill.$type as JType<$E>; - return _newArray<$E>(E, length, fill); + final jClass = elementType == null ? fill.jClass : elementType.jClass; + return _newArray<$E>(jClass, length, fill); } /// Creates a [JArray] from `elements`. static JArray<$E> of<$E extends JObject?>( JType<$E> elementType, Iterable<$E> elements) { - return _newArray<$E>(elementType, elements.length) + return _newArray<$E>(elementType.jClass, elements.length) ..setRange(0, elements.length, elements); } /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); + int get length => Jni.env.GetArrayLength(reference.pointer); - @override - E elementAt(int index) { + E _elementAt(int index) { RangeError.checkValidIndex(index, this); final pointer = Jni.env.GetObjectArrayElement(reference.pointer, index); if (pointer == nullptr) { return null as E; } - return (elementType as JType).fromReference(JGlobalReference(pointer)); + return JObject.fromReference(JGlobalReference(pointer)) as E; } E operator [](int index) { - return elementAt(index); + return _elementAt(index); } void operator []=(int index, E value) { @@ -188,42 +98,35 @@ class JArray extends JObject with Iterable { this[index] = element; } } - - @override - Iterator get iterator => _JArrayIterator(this); } -class _JArrayIterator implements Iterator { - final Iterable _iterable; - final int _length; - int _index; - E? _current; +final class _JArrayListView + with ListMixin, NonGrowableListMixin { + final JArray _jarray; - _JArrayIterator(Iterable iterable) - : _iterable = iterable, - _length = iterable.length, - _index = 0; + _JArrayListView(this._jarray); @override - E get current => _current as E; + int get length => _jarray.length; @override - @pragma('vm:prefer-inline') - bool moveNext() { - final length = _iterable.length; - if (_length != length) { - throw ConcurrentModificationError(_iterable); - } - if (_index >= length) { - _current = null; - return false; - } - _current = _iterable.elementAt(_index); - _index++; - return true; + E operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, E value) { + _jarray[index] = value; } } +extension JArrayToList on JArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JArrayListView(this); +} + void _allocate( int byteCount, void Function(Pointer ptr) use, @@ -243,1057 +146,3 @@ extension on Allocator { }; } } - -@internal -final class $JBooleanArray$NullableType$ extends JType { - const $JBooleanArray$NullableType$(); - - @override - String get signature => '[Z'; - - @override - JBooleanArray? fromReference(JReference reference) => - reference.isNull ? null : JBooleanArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JBooleanArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JBooleanArray$NullableType$ && - other is $JBooleanArray$NullableType$; - } -} - -@internal -final class $JBooleanArray$Type$ extends JType { - const $JBooleanArray$Type$(); - - @override - String get signature => '[Z'; - - @override - JBooleanArray fromReference(JReference reference) => - JBooleanArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => - const $JBooleanArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JBooleanArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JBooleanArray$Type$ && - other is $JBooleanArray$Type$; - } -} - -class JBooleanArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JBooleanArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = - $JBooleanArray$NullableType$(); - - /// Construct a new [JBooleanArray] with [reference] as its underlying - /// reference. - JBooleanArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JBooleanArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JBooleanArray(int length) { - RangeError.checkNotNegative(length); - return JBooleanArray.fromReference( - JGlobalReference(Jni.env.NewBooleanArray(length)), - ); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - bool elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetBooleanArrayElement(reference.pointer, index); - } - - bool operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, bool value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetBooleanArrayElement(reference.pointer, index, value); - } - - Uint8List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env - .GetBooleanArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable.map((e) => e ? 1 : 0), skipCount); - Jni.env.SetBooleanArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JByteArray$NullableType$ extends JType { - const $JByteArray$NullableType$(); - - @override - String get signature => '[B'; - - @override - JByteArray? fromReference(JReference reference) => - reference.isNull ? null : JByteArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JByteArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JByteArray$NullableType$ && - other is $JByteArray$NullableType$; - } -} - -@internal -final class $JByteArray$Type$ extends JType { - const $JByteArray$Type$(); - - @override - String get signature => '[B'; - - @override - JByteArray fromReference(JReference reference) => - JByteArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JByteArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JByteArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JByteArray$Type$ && other is $JByteArray$Type$; - } -} - -/// A fixed-length array of Java [`Byte`](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Byte.html). -/// -/// Integers stored in the list are truncated to their low eight bits, -/// interpreted as a signed 8-bit two's complement integer with values in the -/// range -128 to +127. -/// -/// Java equivalent of [Int8List]. -class JByteArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JByteArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JByteArray$NullableType$(); - - /// Construct a new [JByteArray] with [reference] as its underlying - /// reference. - JByteArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JByteArray] containing all `elements`. - /// - /// The [Iterator] of elements provides the order of the elements. - /// - /// Elements outside of the range -128 to +127 are truncated to their low - /// eight bits and interpreted as signed 8-bit two's complement integers. - factory JByteArray.from(Iterable elements) { - return JByteArray(elements.length)..setRange(0, elements.length, elements); - } - - /// Creates a [JByteArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JByteArray(int length) { - RangeError.checkNotNegative(length); - return JByteArray.fromReference( - JGlobalReference(Jni.env.NewByteArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - int elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetByteArrayElement(reference.pointer, index); - } - - int operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, int value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetByteArrayElement(reference.pointer, index, value); - } - - Int8List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetByteArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetByteArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JCharArray$NullableType$ extends JType { - const $JCharArray$NullableType$(); - - @override - String get signature => '[C'; - - @override - JCharArray? fromReference(JReference reference) => - reference.isNull ? null : JCharArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JCharArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JCharArray$NullableType$ && - other is $JCharArray$NullableType$; - } -} - -@internal -final class $JCharArray$Type$ extends JType { - const $JCharArray$Type$(); - - @override - String get signature => '[C'; - - @override - JCharArray fromReference(JReference reference) => - JCharArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JCharArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JCharArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JCharArray$Type$ && other is $JCharArray$Type$; - } -} - -/// `JCharArray` is a 16-bit integer array. -/// -/// Due to variable length encoding, the number of code units is not equal to -/// the number of characters. -class JCharArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JCharArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JCharArray$NullableType$(); - - /// Construct a new [JCharArray] with [reference] as its underlying - /// reference. - JCharArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JCharArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JCharArray(int length) { - RangeError.checkNotNegative(length); - return JCharArray.fromReference( - JGlobalReference(Jni.env.NewCharArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - int elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetCharArrayElement(reference.pointer, index); - } - - int operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, int value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetCharArrayElement(reference.pointer, index, value); - } - - Uint16List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetCharArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetCharArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JShortArray$NullableType$ extends JType { - const $JShortArray$NullableType$(); - - @override - String get signature => '[S'; - - @override - JShortArray? fromReference(JReference reference) => - reference.isNull ? null : JShortArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JShortArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JShortArray$NullableType$ && - other is $JShortArray$NullableType$; - } -} - -@internal -final class $JShortArray$Type$ extends JType { - const $JShortArray$Type$(); - - @override - String get signature => '[S'; - - @override - JShortArray fromReference(JReference reference) => - JShortArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JShortArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JShortArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JShortArray$Type$ && - other is $JShortArray$Type$; - } -} - -class JShortArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JShortArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JShortArray$NullableType$(); - - /// Construct a new [JShortArray] with [reference] as its underlying - /// reference. - JShortArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JShortArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JShortArray(int length) { - RangeError.checkNotNegative(length); - return JShortArray.fromReference( - JGlobalReference(Jni.env.NewShortArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - int elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetShortArrayElement(reference.pointer, index); - } - - int operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, int value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetShortArrayElement(reference.pointer, index, value); - } - - Int16List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetShortArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetShortArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JIntArray$NullableType$ extends JType { - const $JIntArray$NullableType$(); - - @override - String get signature => '[I'; - - @override - JIntArray? fromReference(JReference reference) => - reference.isNull ? null : JIntArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JIntArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JIntArray$NullableType$ && - other is $JIntArray$NullableType$; - } -} - -@internal -final class $JIntArray$Type$ extends JType { - const $JIntArray$Type$(); - - @override - String get signature => '[I'; - - @override - JIntArray fromReference(JReference reference) => - JIntArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JIntArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JIntArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JIntArray$Type$ && other is $JIntArray$Type$; - } -} - -class JIntArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JIntArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JIntArray$NullableType$(); - - /// Construct a new [JIntArray] with [reference] as its underlying - /// reference. - JIntArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JIntArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JIntArray(int length) { - RangeError.checkNotNegative(length); - return JIntArray.fromReference( - JGlobalReference(Jni.env.NewIntArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - int elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetIntArrayElement(reference.pointer, index); - } - - int operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, int value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetIntArrayElement(reference.pointer, index, value); - } - - Int32List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetIntArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetIntArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JLongArray$NullableType$ extends JType { - const $JLongArray$NullableType$(); - - @override - String get signature => '[J'; - - @override - JLongArray? fromReference(JReference reference) => - reference.isNull ? null : JLongArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JLongArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JLongArray$NullableType$ && - other is $JLongArray$NullableType$; - } -} - -@internal -final class $JLongArray$Type$ extends JType { - const $JLongArray$Type$(); - - @override - String get signature => '[J'; - - @override - JLongArray fromReference(JReference reference) => - JLongArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JLongArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JLongArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JLongArray$Type$ && other is $JLongArray$Type$; - } -} - -class JLongArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JLongArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JLongArray$NullableType$(); - - /// Construct a new [JLongArray] with [reference] as its underlying - /// reference. - JLongArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JLongArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JLongArray(int length) { - RangeError.checkNotNegative(length); - return JLongArray.fromReference( - JGlobalReference(Jni.env.NewLongArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - int elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetLongArrayElement(reference.pointer, index); - } - - int operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, int value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetLongArrayElement(reference.pointer, index, value); - } - - Int64List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetLongArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetLongArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JFloatArray$NullableType$ extends JType { - const $JFloatArray$NullableType$(); - - @override - String get signature => '[F'; - - @override - JFloatArray? fromReference(JReference reference) => - reference.isNull ? null : JFloatArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JFloatArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JFloatArray$NullableType$ && - other is $JFloatArray$NullableType$; - } -} - -@internal -final class $JFloatArray$Type$ extends JType { - const $JFloatArray$Type$(); - - @override - String get signature => '[F'; - - @override - JFloatArray fromReference(JReference reference) => - JFloatArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JFloatArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JFloatArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JFloatArray$Type$ && - other is $JFloatArray$Type$; - } -} - -class JFloatArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JFloatArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JFloatArray$NullableType$(); - - /// Construct a new [JFloatArray] with [reference] as its underlying - /// reference. - JFloatArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JFloatArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JFloatArray(int length) { - RangeError.checkNotNegative(length); - return JFloatArray.fromReference( - JGlobalReference(Jni.env.NewFloatArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - double elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetFloatArrayElement(reference.pointer, index); - } - - double operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, double value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetFloatArrayElement(reference.pointer, index, value); - } - - Float32List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetFloatArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetFloatArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} - -@internal -final class $JDoubleArray$NullableType$ extends JType { - const $JDoubleArray$NullableType$(); - - @override - String get signature => '[D'; - - @override - JDoubleArray? fromReference(JReference reference) => - reference.isNull ? null : JDoubleArray.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JDoubleArray$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JDoubleArray$NullableType$ && - other is $JDoubleArray$NullableType$; - } -} - -@internal -final class $JDoubleArray$Type$ extends JType { - const $JDoubleArray$Type$(); - - @override - String get signature => '[D'; - - @override - JDoubleArray fromReference(JReference reference) => - JDoubleArray.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JDoubleArray$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JDoubleArray$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JDoubleArray$Type$ && - other is $JDoubleArray$Type$; - } -} - -class JDoubleArray extends JObject with Iterable { - @internal - @override - final JType $type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JDoubleArray$Type$(); - - /// The type which includes information such as the signature of this class. - static const JType nullableType = - $JDoubleArray$NullableType$(); - - /// Construct a new [JDoubleArray] with [reference] as its underlying - /// reference. - JDoubleArray.fromReference(super.reference) - : $type = type, - super.fromReference(); - - /// Creates a [JDoubleArray] of the given [length]. - /// - /// The [length] must be a non-negative integer. - factory JDoubleArray(int length) { - RangeError.checkNotNegative(length); - return JDoubleArray.fromReference( - JGlobalReference(Jni.env.NewDoubleArray(length))); - } - - /// The number of elements in this array. - @override - late final length = Jni.env.GetArrayLength(reference.pointer); - - @override - double elementAt(int index) { - RangeError.checkValidIndex(index, this); - return Jni.env.GetDoubleArrayElement(reference.pointer, index); - } - - double operator [](int index) { - return elementAt(index); - } - - void operator []=(int index, double value) { - RangeError.checkValidIndex(index, this); - Jni.env.SetDoubleArrayElement(reference.pointer, index, value); - } - - Float64List getRange(int start, int end, {Allocator allocator = malloc}) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - final buffer = allocator(rangeLength); - Jni.env.GetDoubleArrayRegion(reference.pointer, start, rangeLength, buffer); - return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); - } - - void setRange(int start, int end, Iterable iterable, - [int skipCount = 0]) { - RangeError.checkValidRange(start, end, length); - final rangeLength = end - start; - _allocate(sizeOf() * rangeLength, (ptr) { - ptr - .asTypedList(rangeLength) - .setRange(0, rangeLength, iterable, skipCount); - Jni.env.SetDoubleArrayRegion(reference.pointer, start, rangeLength, ptr); - }); - } - - @override - Iterator get iterator => _JArrayIterator(this); -} diff --git a/pkgs/jni/lib/src/jclass.dart b/pkgs/jni/lib/src/jclass.dart index 4807580e0..f41f53d66 100644 --- a/pkgs/jni/lib/src/jclass.dart +++ b/pkgs/jni/lib/src/jclass.dart @@ -156,12 +156,16 @@ extension type JConstructorId._fromPointer(JMethodIDPtr pointer) { }); /// Constructs an instance of [jClass] with the given arguments. - DartT call(JClass jClass, - JConstructable returnType, List args) { + DartT call(JClass jClass, List args) { return using((arena) { final jClassRef = jClass.reference; - return returnType._newObject(jClassRef.pointer, this as JMethodIDPtr, - toJValues(args, allocator: arena)); + return JObject.fromReference( + JGlobalReference(Jni.env.NewObjectA( + jClassRef.pointer, + this as JMethodIDPtr, + toJValues(args, allocator: arena), + )), + ) as DartT; }); } } diff --git a/pkgs/jni/lib/src/jimplementer.dart b/pkgs/jni/lib/src/jimplementer.dart index 6196c566d..454bd5bf0 100644 --- a/pkgs/jni/lib/src/jimplementer.dart +++ b/pkgs/jni/lib/src/jimplementer.dart @@ -11,7 +11,6 @@ import 'package:meta/meta.dart' show internal; import 'accessors.dart'; import 'jni.dart'; import 'jobject.dart'; -import 'jreference.dart'; import 'lang/jstring.dart'; import 'third_party/generated_bindings.dart'; import 'types.dart'; @@ -83,9 +82,7 @@ class JImplementer extends JObject { binaryNameRef.pointer, port.sendPort.nativePort, pointer.address, - (asyncMethods - .map((m) => m.toJString()..releasedBy(arena)) - .toJList(JString.type) + (asyncMethods.map((m) => m.toJString()..releasedBy(arena)).toJList() ..releasedBy(arena)) .reference .pointer, @@ -114,17 +111,7 @@ class JImplementer extends JObject { /// added interfaces with the given implementations. /// /// Releases this implementer. - T implement(JType type) { - return type.fromReference(implementReference()); - } - - /// Used in the JNIgen generated code. - /// - /// It is unnecessary to construct the type object when the code is generated. - @internal - JReference implementReference() { - final ref = _build(reference.pointer, _buildId as JMethodIDPtr).reference; - release(); - return ref; + T implement() { + return _build(reference.pointer, _buildId as JMethodIDPtr).object(); } } diff --git a/pkgs/jni/lib/src/jobject.dart b/pkgs/jni/lib/src/jobject.dart index 40e58fdc4..7d2d24bf4 100644 --- a/pkgs/jni/lib/src/jobject.dart +++ b/pkgs/jni/lib/src/jobject.dart @@ -24,71 +24,6 @@ final class CastError extends Error { } } -@internal -final class $JObject$NullableType$ extends JType { - const $JObject$NullableType$(); - - @override - String get signature => 'Ljava/lang/Object;'; - - @override - JObject? fromReference(JReference reference) => - reference.isNull ? null : JObject.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - // TODO(#70): Once interface implementation lands, other than [superType], - // we should have a list of implemented interfaces. - - @override - final int superCount = 0; - - @override - int get hashCode => ($JObject$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JObject$NullableType$ && - other is $JObject$NullableType$; - } -} - -@internal -final class $JObject$Type$ extends JType { - const $JObject$Type$(); - - @override - String get signature => 'Ljava/lang/Object;'; - - @override - JObject fromReference(JReference reference) => - JObject.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JObject$NullableType$(); - - // TODO(#70): Once interface implementation lands, other than [superType], - // we should have a list of implemented interfaces. - - @override - final int superCount = 0; - - @override - int get hashCode => ($JObject$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JObject$Type$ && other is $JObject$Type$; - } -} - /// A high-level wrapper for JNI global object reference. /// /// This is the base class for classes generated by `jnigen`. @@ -96,14 +31,8 @@ class JObject { @internal final JReference reference; - @internal - final JType $type = type; - - /// The type which includes information such as the signature of this class. - static const JType type = $JObject$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JObject$NullableType$(); + static const JType type = JType('java/lang/Object'); /// Constructs a [JObject] with the underlying [reference]. JObject.fromReference(this.reference) { @@ -173,12 +102,13 @@ class JObject { } if (releaseOriginal) { - final ret = type.fromReference(JGlobalReference(reference.pointer)); + final ret = + JObject.fromReference(JGlobalReference(reference.pointer)) as T; reference.setAsReleased(); return ret; } final newRef = JGlobalReference(Jni.env.NewGlobalRef(reference.pointer)); - return type.fromReference(newRef); + return JObject.fromReference(newRef) as T; } static final _class = JClass.forName('java/lang/Object'); diff --git a/pkgs/jni/lib/src/lang/jboolean.dart b/pkgs/jni/lib/src/lang/jboolean.dart index 67c907925..54fb5bb83 100644 --- a/pkgs/jni/lib/src/lang/jboolean.dart +++ b/pkgs/jni/lib/src/lang/jboolean.dart @@ -2,92 +2,18 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:meta/meta.dart' show internal; - import '../jobject.dart'; -import '../jreference.dart'; import '../types.dart'; -@internal -final class $JBoolean$NullableType$ extends JType { - const $JBoolean$NullableType$(); - - @override - String get signature => r'Ljava/lang/Boolean;'; - - @override - JBoolean? fromReference(JReference reference) => - reference.isNull ? null : JBoolean.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JBoolean$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JBoolean$NullableType$ && - other is $JBoolean$NullableType$; - } -} - -@internal -final class $JBoolean$Type$ extends JType { - const $JBoolean$Type$(); - - @override - String get signature => r'Ljava/lang/Boolean;'; - - @override - JBoolean fromReference(JReference reference) => - JBoolean.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JBoolean$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JBoolean$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JBoolean$Type$ && other is $JBoolean$Type$; - } -} - -class JBoolean extends JObject { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JBoolean.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JBoolean._(JObject _$this) implements JObject { /// The type which includes information such as the signature of this class. - static const JType type = $JBoolean$Type$(); + static const JType type = JType(r'java/lang/Boolean'); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JBoolean$NullableType$(); - - static final _class = JClass.forName(r'java/lang/Boolean'); + static final _class = type.jClass; static final _ctorId = _class.constructorId(r'(Z)V'); - JBoolean(bool boolean) - : super.fromReference(_ctorId(_class, referenceType, [boolean ? 1 : 0])); + + JBoolean(bool boolean) : _$this = _ctorId(_class, [boolean ? 1 : 0]); static final _booleanValueId = _class.instanceMethodId(r'booleanValue', r'()Z'); diff --git a/pkgs/jni/lib/src/lang/jbyte.dart b/pkgs/jni/lib/src/lang/jbyte.dart index d8a4dd57d..47fd81a65 100644 --- a/pkgs/jni/lib/src/lang/jbyte.dart +++ b/pkgs/jni/lib/src/lang/jbyte.dart @@ -2,90 +2,25 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:meta/meta.dart' show internal; - -import '../jreference.dart'; +import '../jobject.dart'; import '../jvalues.dart'; import '../types.dart'; import 'jnumber.dart'; -@internal -final class $JByte$NullableType$ extends JType { - const $JByte$NullableType$(); - - @override - String get signature => r'Ljava/lang/Byte;'; - - @override - JByte? fromReference(JReference reference) => - reference.isNull ? null : JByte.fromReference(reference); - - @override - JType get superType => const $JNumber$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JByte$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JByte$NullableType$ && - other is $JByte$NullableType$; - } -} - -@internal -final class $JByte$Type$ extends JType { - const $JByte$Type$(); +final class _$JByte$Type$ extends JType { + const _$JByte$Type$(); @override String get signature => r'Ljava/lang/Byte;'; - - @override - JByte fromReference(JReference reference) => JByte.fromReference(reference); - - @override - JType get superType => const $JNumber$Type$(); - - @override - JType get nullableType => const $JByte$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JByte$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JByte$Type$ && other is $JByte$Type$; - } } -class JByte extends JNumber { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JByte.fromReference( - super.reference, - ) : super.fromReference(); - - /// The type which includes information such as the signature of this class. - static const JType type = $JByte$Type$(); - +extension type JByte._(JObject _$this) implements JNumber { /// The type which includes information such as the signature of this class. - static const JType nullableType = $JByte$NullableType$(); + static const JType type = _$JByte$Type$(); static final _class = JClass.forName(r'java/lang/Byte'); static final _ctorId = _class.constructorId(r'(B)V'); - JByte(int num) - : super.fromReference(_ctorId(_class, referenceType, [JValueByte(num)])); + + JByte(int num) : _$this = _ctorId(_class, [JValueByte(num)]); } diff --git a/pkgs/jni/lib/src/lang/jcharacter.dart b/pkgs/jni/lib/src/lang/jcharacter.dart index 1689d7cec..c76708926 100644 --- a/pkgs/jni/lib/src/lang/jcharacter.dart +++ b/pkgs/jni/lib/src/lang/jcharacter.dart @@ -5,91 +5,26 @@ import 'package:meta/meta.dart' show internal; import '../jobject.dart'; -import '../jreference.dart'; import '../jvalues.dart'; import '../types.dart'; -@internal -final class $JCharacter$NullableType$ extends JType { - const $JCharacter$NullableType$(); - - @override - String get signature => r'Ljava/lang/Character;'; - - @override - JCharacter? fromReference(JReference reference) => - reference.isNull ? null : JCharacter.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 1; - - @override - int get hashCode => ($JCharacter$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JCharacter$NullableType$ && - other is $JCharacter$NullableType$; - } -} - @internal final class $JCharacter$Type$ extends JType { const $JCharacter$Type$(); @override String get signature => r'Ljava/lang/Character;'; - - @override - JCharacter fromReference(JReference reference) => - JCharacter.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JCharacter$NullableType$(); - - @override - final superCount = 1; - - @override - int get hashCode => ($JCharacter$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JCharacter$Type$ && other is $JCharacter$Type$; - } } -class JCharacter extends JObject { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JCharacter.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JCharacter._(JObject _$this) implements JObject { /// The type which includes information such as the signature of this class. static const JType type = $JCharacter$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JCharacter$NullableType$(); - static final _class = JClass.forName(r'java/lang/Character'); static final _ctorId = _class.constructorId(r'(C)V'); - JCharacter(int c) - : super.fromReference(_ctorId(_class, referenceType, [JValueChar(c)])); + JCharacter(int c) : _$this = _ctorId(_class, [JValueChar(c)]); static final _charValueId = _class.instanceMethodId(r'charValue', r'()C'); diff --git a/pkgs/jni/lib/src/lang/jdouble.dart b/pkgs/jni/lib/src/lang/jdouble.dart index 9e4c237fc..3efe556dc 100644 --- a/pkgs/jni/lib/src/lang/jdouble.dart +++ b/pkgs/jni/lib/src/lang/jdouble.dart @@ -4,88 +4,25 @@ import 'package:meta/meta.dart' show internal; -import '../jreference.dart'; +import '../jobject.dart'; import '../types.dart'; import 'jnumber.dart'; -@internal -final class $JDouble$NullableType$ extends JType { - const $JDouble$NullableType$(); - - @override - String get signature => r'Ljava/lang/Double;'; - - @override - JDouble? fromReference(JReference reference) => - reference.isNull ? null : JDouble.fromReference(reference); - - @override - JType get superType => const $JNumber$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JDouble$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JDouble$NullableType$ && - other is $JDouble$NullableType$; - } -} - @internal final class $JDouble$Type$ extends JType { const $JDouble$Type$(); @override String get signature => r'Ljava/lang/Double;'; - - @override - JDouble fromReference(JReference reference) => - JDouble.fromReference(reference); - - @override - JType get superType => const $JNumber$Type$(); - - @override - JType get nullableType => const $JDouble$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JDouble$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JDouble$Type$ && other is $JDouble$Type$; - } } -class JDouble extends JNumber { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JDouble.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JDouble._(JObject _$this) implements JNumber { /// The type which includes information such as the signature of this class. static const JType type = $JDouble$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JDouble$NullableType$(); - static final _class = JClass.forName(r'java/lang/Double'); static final _ctorId = _class.constructorId(r'(D)V'); - JDouble(double num) - : super.fromReference(_ctorId(_class, referenceType, [num])); + + JDouble(double num) : _$this = _ctorId(_class, [num]); } diff --git a/pkgs/jni/lib/src/lang/jfloat.dart b/pkgs/jni/lib/src/lang/jfloat.dart index 1649fb7cb..934121f2c 100644 --- a/pkgs/jni/lib/src/lang/jfloat.dart +++ b/pkgs/jni/lib/src/lang/jfloat.dart @@ -2,91 +2,18 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:meta/meta.dart' show internal; - -import '../jreference.dart'; +import '../jobject.dart'; import '../jvalues.dart'; import '../types.dart'; import 'jnumber.dart'; -@internal -final class $JFloat$NullableType$ extends JType { - const $JFloat$NullableType$(); - - @override - String get signature => r'Ljava/lang/Float;'; - - @override - JFloat? fromReference(JReference reference) => - reference.isNull ? null : JFloat.fromReference(reference); - - @override - JType get superType => const $JNumber$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JFloat$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JFloat$NullableType$ && - other is $JFloat$NullableType$; - } -} - -@internal -final class $JFloat$Type$ extends JType { - const $JFloat$Type$(); - - @override - String get signature => r'Ljava/lang/Float;'; - - @override - JFloat fromReference(JReference reference) => JFloat.fromReference(reference); - - @override - JType get superType => const $JNumber$Type$(); - - @override - JType get nullableType => const $JFloat$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JFloat$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JFloat$Type$ && other is $JFloat$Type$; - } -} - -class JFloat extends JNumber { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JFloat.fromReference( - super.reference, - ) : super.fromReference(); - - /// The type which includes information such as the signature of this class. - static const JType type = $JFloat$Type$(); - +extension type JFloat._(JObject _$this) implements JNumber { /// The type which includes information such as the signature of this class. - static const JType nullableType = $JFloat$NullableType$(); + static const JType type = JType(r'java/lang/Float'); - static final _class = JClass.forName(r'java/lang/Float'); + static final _class = type.jClass; static final _ctorId = _class.constructorId(r'(F)V'); - JFloat(double num) - : super.fromReference(_ctorId(_class, referenceType, [JValueFloat(num)])); + JFloat(double num) : _$this = _ctorId(_class, [JValueFloat(num)]); } diff --git a/pkgs/jni/lib/src/lang/jinteger.dart b/pkgs/jni/lib/src/lang/jinteger.dart index b856aedff..bdff4800a 100644 --- a/pkgs/jni/lib/src/lang/jinteger.dart +++ b/pkgs/jni/lib/src/lang/jinteger.dart @@ -4,89 +4,26 @@ import 'package:meta/meta.dart' show internal; -import '../jreference.dart'; +import '../jobject.dart'; import '../jvalues.dart'; import '../types.dart'; import 'jnumber.dart'; -@internal -final class $JInteger$NullableType$ extends JType { - const $JInteger$NullableType$(); - - @override - String get signature => r'Ljava/lang/Integer;'; - - @override - JInteger? fromReference(JReference reference) => - reference.isNull ? null : JInteger.fromReference(reference); - - @override - JType get superType => const $JNumber$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JInteger$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JInteger$NullableType$ && - other is $JInteger$NullableType$; - } -} - @internal final class $JInteger$Type$ extends JType { const $JInteger$Type$(); @override String get signature => r'Ljava/lang/Integer;'; - - @override - JInteger fromReference(JReference reference) => - JInteger.fromReference(reference); - - @override - JType get superType => const $JNumber$Type$(); - - @override - JType get nullableType => const $JInteger$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JInteger$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JInteger$Type$ && other is $JInteger$Type$; - } } -class JInteger extends JNumber { - @override - // ignore: overridden_fields - final JType $type = type; - - JInteger.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JInteger._(JObject _$this) implements JNumber { /// The type which includes information such as the signature of this class. static const JType type = $JInteger$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JInteger$NullableType$(); - static final _class = JClass.forName(r'java/lang/Integer'); static final _ctorId = _class.constructorId('(I)V'); - JInteger(int num) - : super.fromReference(_ctorId(_class, referenceType, [JValueInt(num)])); + JInteger(int num) : _$this = _ctorId(_class, [JValueInt(num)]); } diff --git a/pkgs/jni/lib/src/lang/jlong.dart b/pkgs/jni/lib/src/lang/jlong.dart index 62173f347..765dd82d4 100644 --- a/pkgs/jni/lib/src/lang/jlong.dart +++ b/pkgs/jni/lib/src/lang/jlong.dart @@ -4,87 +4,25 @@ import 'package:meta/meta.dart' show internal; -import '../jreference.dart'; +import '../jobject.dart'; import '../types.dart'; import 'jnumber.dart'; -@internal -final class $JLong$NullableType$ extends JType { - const $JLong$NullableType$(); - - @override - String get signature => r'Ljava/lang/Long;'; - - @override - JLong? fromReference(JReference reference) => - reference.isNull ? null : JLong.fromReference(reference); - - @override - JType get superType => const $JNumber$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JLong$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JLong$NullableType$ && - other is $JLong$NullableType$; - } -} - @internal final class $JLong$Type$ extends JType { const $JLong$Type$(); @override String get signature => r'Ljava/lang/Long;'; - - @override - JLong fromReference(JReference reference) => JLong.fromReference(reference); - - @override - JType get superType => const $JNumber$Type$(); - - @override - JType get nullableType => const $JLong$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JLong$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JLong$Type$ && other is $JLong$Type$; - } } -class JLong extends JNumber { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JLong.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JLong._(JObject _$this) implements JNumber { /// The type which includes information such as the signature of this class. static const JType type = $JLong$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JLong$NullableType$(); - static final _class = JClass.forName(r'java/lang/Long'); static final _ctorId = _class.constructorId(r'(J)V'); - JLong(int num) : super.fromReference(_ctorId(_class, referenceType, [num])); + JLong(int num) : _$this = _ctorId(_class, [num]); } diff --git a/pkgs/jni/lib/src/lang/jnumber.dart b/pkgs/jni/lib/src/lang/jnumber.dart index 6863c00ff..7c3f25d64 100644 --- a/pkgs/jni/lib/src/lang/jnumber.dart +++ b/pkgs/jni/lib/src/lang/jnumber.dart @@ -5,7 +5,6 @@ import 'package:meta/meta.dart' show internal; import '../jobject.dart'; -import '../jreference.dart'; import '../types.dart'; import 'jboolean.dart'; import 'jbyte.dart'; @@ -16,86 +15,23 @@ import 'jinteger.dart'; import 'jlong.dart'; import 'jshort.dart'; -@internal -final class $JNumber$NullableType$ extends JType { - const $JNumber$NullableType$(); - - @override - String get signature => r'Ljava/lang/Number;'; - - @override - JNumber? fromReference(JReference reference) => - reference.isNull ? null : JNumber.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 1; - - @override - int get hashCode => ($JNumber$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JNumber$NullableType$ && - other is $JNumber$NullableType$; - } -} - @internal final class $JNumber$Type$ extends JType { const $JNumber$Type$(); @override String get signature => r'Ljava/lang/Number;'; - - @override - JNumber fromReference(JReference reference) => - JNumber.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JNumber$NullableType$(); - - @override - final superCount = 1; - - @override - int get hashCode => ($JNumber$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JNumber$Type$ && other is $JNumber$Type$; - } } -class JNumber extends JObject { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JNumber.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JNumber._(JObject _$this) implements JObject { static final _class = JClass.forName(r'java/lang/Number'); /// The type which includes information such as the signature of this class. static const JType type = $JNumber$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JNumber$NullableType$(); - static final _ctorId = _class.constructorId(r'()V'); - JNumber() : super.fromReference(_ctorId(_class, referenceType, [])); + JNumber() : _$this = JObject.fromReference(_ctorId(_class, [])); static final _intValueId = _class.instanceMethodId(r'intValue', r'()I'); diff --git a/pkgs/jni/lib/src/lang/jshort.dart b/pkgs/jni/lib/src/lang/jshort.dart index f15c266f3..e64210bfe 100644 --- a/pkgs/jni/lib/src/lang/jshort.dart +++ b/pkgs/jni/lib/src/lang/jshort.dart @@ -4,89 +4,26 @@ import 'package:meta/meta.dart' show internal; -import '../jreference.dart'; +import '../jobject.dart'; import '../jvalues.dart'; import '../types.dart'; import 'jnumber.dart'; -@internal -final class $JShort$NullableType$ extends JType { - const $JShort$NullableType$(); - - @override - String get signature => r'Ljava/lang/Short;'; - - @override - JShort? fromReference(JReference reference) => - reference.isNull ? null : JShort.fromReference(reference); - - @override - JType get superType => const $JNumber$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JShort$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JShort$NullableType$ && - other is $JShort$NullableType$; - } -} - @internal final class $JShort$Type$ extends JType { const $JShort$Type$(); @override String get signature => r'Ljava/lang/Short;'; - - @override - JShort fromReference(JReference reference) => JShort.fromReference(reference); - - @override - JType get superType => const $JNumber$Type$(); - - @override - JType get nullableType => const $JShort$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JShort$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JShort$Type$ && other is $JShort$Type$; - } } -class JShort extends JNumber { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JShort.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JShort._(JObject _$this) implements JNumber { /// The type which includes information such as the signature of this class. static const JType type = $JShort$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JShort$NullableType$(); - static final _class = JClass.forName(r'java/lang/Short'); static final _ctorId = _class.constructorId(r'(S)V'); - JShort(int num) - : super.fromReference(_ctorId(_class, referenceType, [JValueShort(num)])); + JShort(int num) : _$this = _ctorId(_class, [JValueShort(num)]); } diff --git a/pkgs/jni/lib/src/lang/jstring.dart b/pkgs/jni/lib/src/lang/jstring.dart index 5d976485b..a1cf311e2 100644 --- a/pkgs/jni/lib/src/lang/jstring.dart +++ b/pkgs/jni/lib/src/lang/jstring.dart @@ -9,86 +9,25 @@ import '../jobject.dart'; import '../jreference.dart'; import '../types.dart'; -@internal -final class $JString$NullableType$ extends JType { - const $JString$NullableType$(); - - @override - String get signature => 'Ljava/lang/String;'; - - @override - JString? fromReference(JReference reference) => - reference.isNull ? null : JString.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final int superCount = 1; - - @override - int get hashCode => ($JString$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JString$NullableType$ && - other is $JString$NullableType$; - } -} - @internal final class $JString$Type$ extends JType { const $JString$Type$(); @override String get signature => 'Ljava/lang/String;'; - - @override - JString fromReference(JReference reference) => - JString.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JString$NullableType$(); - - @override - final int superCount = 1; - - @override - int get hashCode => ($JString$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JString$Type$ && other is $JString$Type$; - } } -class JString extends JObject { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - +extension type JString._(JObject _$this) implements JObject { /// The type which includes information such as the signature of this class. static const JType type = $JString$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JString$NullableType$(); - - /// Construct a new [JString] with [reference] as its underlying reference. - JString.fromReference(super.reference) : super.fromReference(); - /// The number of Unicode characters in this Java string. int get length => Jni.env.GetStringLength(reference.pointer); /// Construct a [JString] from the contents of Dart string [s]. JString.fromString(String s) - : super.fromReference(JGlobalReference(Jni.env.toJStringPtr(s))); + : _$this = + JObject.fromReference(JGlobalReference(Jni.env.toJStringPtr(s))); /// Returns the contents as a Dart String. /// diff --git a/pkgs/jni/lib/src/lang/lang.dart b/pkgs/jni/lib/src/lang/lang.dart index 862444cb9..786488c06 100644 --- a/pkgs/jni/lib/src/lang/lang.dart +++ b/pkgs/jni/lib/src/lang/lang.dart @@ -2,13 +2,13 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -export 'jboolean.dart' hide $JBoolean$NullableType$, $JBoolean$Type$; -export 'jbyte.dart' hide $JByte$NullableType$, $JByte$Type$; -export 'jcharacter.dart' hide $JCharacter$NullableType$, $JCharacter$Type$; -export 'jdouble.dart' hide $JDouble$NullableType$, $JDouble$Type$; -export 'jfloat.dart' hide $JFloat$NullableType$, $JFloat$Type$; -export 'jinteger.dart' hide $JInteger$NullableType$, $JInteger$Type$; -export 'jlong.dart' hide $JLong$NullableType$, $JLong$Type$; -export 'jnumber.dart' hide $JNumber$NullableType$, $JNumber$Type$; -export 'jshort.dart' hide $JShort$NullableType$, $JShort$Type$; -export 'jstring.dart' hide $JString$NullableType$, $JString$Type$; +export 'jboolean.dart'; +export 'jbyte.dart'; +export 'jcharacter.dart'; +export 'jdouble.dart'; +export 'jfloat.dart'; +export 'jinteger.dart'; +export 'jlong.dart'; +export 'jnumber.dart'; +export 'jshort.dart'; +export 'jstring.dart'; diff --git a/pkgs/jni/lib/src/method_invocation.dart b/pkgs/jni/lib/src/method_invocation.dart index 470bc8f09..197f91b8e 100644 --- a/pkgs/jni/lib/src/method_invocation.dart +++ b/pkgs/jni/lib/src/method_invocation.dart @@ -27,14 +27,14 @@ class MethodInvocation { ) { return MethodInvocation._( Pointer.fromAddress(resultAddress), - JString.fromReference( - JGlobalReference(Pointer.fromAddress(descriptorAddress))), + JObject.fromReference( + JGlobalReference(Pointer.fromAddress(descriptorAddress))) + as JString, argsAddress == 0 ? null - : JArray.fromReference( - const $JObject$NullableType$(), + : JObject.fromReference( JGlobalReference(Pointer.fromAddress(argsAddress)), - ), + ) as JArray, ); } diff --git a/pkgs/jni/lib/src/nio/jbuffer.dart b/pkgs/jni/lib/src/nio/jbuffer.dart index f4a9d2a0c..410330502 100644 --- a/pkgs/jni/lib/src/nio/jbuffer.dart +++ b/pkgs/jni/lib/src/nio/jbuffer.dart @@ -5,68 +5,16 @@ import 'package:meta/meta.dart' show internal; import '../jobject.dart'; -import '../jreference.dart'; import '../jvalues.dart'; import '../types.dart'; import 'jbyte_buffer.dart'; -@internal -final class $JBuffer$NullableType$ extends JType { - const $JBuffer$NullableType$(); - - @override - String get signature => r'Ljava/nio/Buffer;'; - - @override - JBuffer? fromReference(JReference reference) => - reference.isNull ? null : JBuffer.fromReference(reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 1; - - @override - int get hashCode => ($JBuffer$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JBuffer$NullableType$ && - other is $JBuffer$NullableType$; - } -} - @internal final class $JBuffer$Type$ extends JType { const $JBuffer$Type$(); @override String get signature => r'Ljava/nio/Buffer;'; - - @override - JBuffer fromReference(JReference reference) => - JBuffer.fromReference(reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType get nullableType => const $JBuffer$NullableType$(); - - @override - final superCount = 1; - - @override - int get hashCode => ($JBuffer$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JBuffer$Type$ && other is $JBuffer$Type$; - } } /// A container for data of a specific primitive type. @@ -80,24 +28,12 @@ final class $JBuffer$Type$ extends JType { /// There is one subclass of this class for each non-boolean primitive type. /// We currently only have the bindings for `java.nio.ByteBuffer` in this /// package as [JByteBuffer]. -class JBuffer extends JObject { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JBuffer.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JBuffer._(JObject _$this) implements JObject { static final _class = JClass.forName(r'java/nio/Buffer'); /// The type which includes information such as the signature of this class. static const JType type = $JBuffer$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JBuffer$NullableType$(); - static final _capacityId = _class.instanceMethodId(r'capacity', r'()I'); /// The number of elements this buffer contains. diff --git a/pkgs/jni/lib/src/nio/jbyte_buffer.dart b/pkgs/jni/lib/src/nio/jbyte_buffer.dart index 0b577625a..907b8f274 100644 --- a/pkgs/jni/lib/src/nio/jbyte_buffer.dart +++ b/pkgs/jni/lib/src/nio/jbyte_buffer.dart @@ -15,64 +15,12 @@ import '../jvalues.dart'; import '../types.dart'; import 'jbuffer.dart'; -@internal -final class $JByteBuffer$NullableType$ extends JType { - const $JByteBuffer$NullableType$(); - - @override - String get signature => r'Ljava/nio/ByteBuffer;'; - - @override - JByteBuffer? fromReference(JReference reference) => - reference.isNull ? null : JByteBuffer.fromReference(reference); - - @override - JType get superType => const $JByteBuffer$NullableType$(); - - @override - JType get nullableType => this; - - @override - final superCount = 2; - - @override - int get hashCode => ($JByteBuffer$NullableType$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JByteBuffer$NullableType$ && - other is $JByteBuffer$NullableType$; - } -} - @internal final class $JByteBuffer$Type$ extends JType { const $JByteBuffer$Type$(); @override String get signature => r'Ljava/nio/ByteBuffer;'; - - @override - JByteBuffer fromReference(JReference reference) => - JByteBuffer.fromReference(reference); - - @override - JType get superType => const $JBuffer$Type$(); - - @override - JType get nullableType => const $JByteBuffer$NullableType$(); - - @override - final superCount = 2; - - @override - int get hashCode => ($JByteBuffer$Type$).hashCode; - - @override - bool operator ==(Object other) { - return other.runtimeType == $JByteBuffer$Type$ && - other is $JByteBuffer$Type$; - } } /// A byte [JBuffer]. @@ -124,24 +72,12 @@ final class $JByteBuffer$Type$ extends JType { /// final data2 = directBuffer.asUint8List(releaseOriginal: true); /// // directBuffer.nextByte = 42; // throws [UseAfterReleaseException]! /// ``` -class JByteBuffer extends JBuffer { - @internal - @override - // ignore: overridden_fields - final JType $type = type; - - JByteBuffer.fromReference( - super.reference, - ) : super.fromReference(); - +extension type JByteBuffer._(JObject _$this) implements JBuffer { static final _class = JClass.forName(r'java/nio/ByteBuffer'); /// The type which includes information such as the signature of this class. static const JType type = $JByteBuffer$Type$(); - /// The type which includes information such as the signature of this class. - static const JType nullableType = $JByteBuffer$NullableType$(); - static final _allocateDirectId = _class.staticMethodId(r'allocateDirect', r'(I)Ljava/nio/ByteBuffer;'); @@ -260,7 +196,6 @@ class JByteBuffer extends JBuffer { static final _arrayId = _class.instanceMethodId(r'array', r'()[B'); - @override JByteArray get array { return _arrayId(this, JByteArray.type, [])!; } diff --git a/pkgs/jni/lib/src/nio/nio.dart b/pkgs/jni/lib/src/nio/nio.dart index 0775fec09..d07d6e240 100644 --- a/pkgs/jni/lib/src/nio/nio.dart +++ b/pkgs/jni/lib/src/nio/nio.dart @@ -2,5 +2,5 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -export 'jbuffer.dart' hide $JBuffer$NullableType$, $JBuffer$Type$; -export 'jbyte_buffer.dart' hide $JByteBuffer$NullableType$, $JByteBuffer$Type$; +export 'jbuffer.dart' hide $JBuffer$Type$; +export 'jbyte_buffer.dart' hide $JByteBuffer$Type$; diff --git a/pkgs/jni/lib/src/primitive_jarrays.dart b/pkgs/jni/lib/src/primitive_jarrays.dart new file mode 100644 index 000000000..994dbd758 --- /dev/null +++ b/pkgs/jni/lib/src/primitive_jarrays.dart @@ -0,0 +1,699 @@ +// AUTO GENERATED. DO NOT EDIT! +// +// To regenerate, run `dart run tool/generate_primtive_arrays.dart` + +part of 'jarray.dart'; + +final class _$JBooleanArray$Type$ extends JType { + const _$JBooleanArray$Type$(); + + @override + String get signature => '[Z'; +} + +/// A fixed-length array of Java Boolean. +/// +/// Java equivalent of [Uint8List]. +extension type JBooleanArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JBooleanArray$Type$(); + + /// Creates a [JBooleanArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JBooleanArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewBooleanArray(length)), + ) as JBooleanArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + bool operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetBooleanArrayElement(reference.pointer, index); + } + + void operator []=(int index, bool value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetBooleanArrayElement(reference.pointer, index, value); + } + + Uint8List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env + .GetBooleanArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable.map((e) => e ? 1 : 0), skipCount); + Jni.env.SetBooleanArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JBooleanArrayListView + with ListMixin, NonGrowableListMixin { + final JBooleanArray _jarray; + + _JBooleanArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + bool operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, bool value) { + _jarray[index] = value; + } +} + +extension JBooleanArrayToList on JBooleanArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JBooleanArrayListView(this); +} + +final class _$JByteArray$Type$ extends JType { + const _$JByteArray$Type$(); + + @override + String get signature => '[B'; +} + +/// A fixed-length array of Java Byte. +/// +/// Integers stored in the list are truncated to their low eight bits +/// interpreted as a signed 8-bit two's complement integer with values in the +/// range -128 to +127. +/// +/// Java equivalent of [Int8List]. +extension type JByteArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JByteArray$Type$(); + + /// Creates a [JByteArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JByteArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewByteArray(length)), + ) as JByteArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + int operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetByteArrayElement(reference.pointer, index); + } + + void operator []=(int index, int value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetByteArrayElement(reference.pointer, index, value); + } + + Int8List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetByteArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetByteArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JByteArrayListView with ListMixin, NonGrowableListMixin { + final JByteArray _jarray; + + _JByteArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + int operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, int value) { + _jarray[index] = value; + } +} + +extension JByteArrayToList on JByteArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JByteArrayListView(this); +} + +final class _$JCharArray$Type$ extends JType { + const _$JCharArray$Type$(); + + @override + String get signature => '[C'; +} + +/// A fixed-length array of Java Char. +/// +/// Integers stored in the list are truncated to their low 16 bits +/// interpreted as an unsigned 16-bit integer with values in the +/// range 0 to +65535. +/// +/// Java equivalent of [Uint16List]. +extension type JCharArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JCharArray$Type$(); + + /// Creates a [JCharArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JCharArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewCharArray(length)), + ) as JCharArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + int operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetCharArrayElement(reference.pointer, index); + } + + void operator []=(int index, int value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetCharArrayElement(reference.pointer, index, value); + } + + Uint16List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetCharArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetCharArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JCharArrayListView with ListMixin, NonGrowableListMixin { + final JCharArray _jarray; + + _JCharArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + int operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, int value) { + _jarray[index] = value; + } +} + +extension JCharArrayToList on JCharArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JCharArrayListView(this); +} + +final class _$JShortArray$Type$ extends JType { + const _$JShortArray$Type$(); + + @override + String get signature => '[S'; +} + +/// A fixed-length array of Java Short. +/// +/// Integers stored in the list are truncated to their low 16 bits +/// interpreted as a signed 16-bit two's complement integer with values in the +/// range -32768 to +32767. +/// +/// Java equivalent of [Int16List]. +extension type JShortArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JShortArray$Type$(); + + /// Creates a [JShortArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JShortArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewShortArray(length)), + ) as JShortArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + int operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetShortArrayElement(reference.pointer, index); + } + + void operator []=(int index, int value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetShortArrayElement(reference.pointer, index, value); + } + + Int16List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetShortArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetShortArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JShortArrayListView + with ListMixin, NonGrowableListMixin { + final JShortArray _jarray; + + _JShortArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + int operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, int value) { + _jarray[index] = value; + } +} + +extension JShortArrayToList on JShortArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JShortArrayListView(this); +} + +final class _$JIntArray$Type$ extends JType { + const _$JIntArray$Type$() : super('[I'); +} + +/// A fixed-length array of Java Int. +/// +/// Integers stored in the list are truncated to their low 32 bits +/// interpreted as a signed 32-bit two's complement integer with values in the +/// range -2147483648 to +2147483647. +/// +/// Java equivalent of [Int32List]. +extension type JIntArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JIntArray$Type$(); + + /// Creates a [JIntArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JIntArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewIntArray(length)), + ) as JIntArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + int operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetIntArrayElement(reference.pointer, index); + } + + void operator []=(int index, int value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetIntArrayElement(reference.pointer, index, value); + } + + Int32List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetIntArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetIntArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JIntArrayListView with ListMixin, NonGrowableListMixin { + final JIntArray _jarray; + + _JIntArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + int operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, int value) { + _jarray[index] = value; + } +} + +extension JIntArrayToList on JIntArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JIntArrayListView(this); +} + +final class _$JLongArray$Type$ extends JType { + const _$JLongArray$Type$(); + + @override + String get signature => '[J'; +} + +/// A fixed-length array of Java Long. +/// +/// Integers stored in the list are truncated to their low 64 bits +/// interpreted as a signed 64-bit two's complement integer with values in the +/// range -9223372036854775808 to +9223372036854775807. +/// +/// Java equivalent of [Int64List]. +extension type JLongArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JLongArray$Type$(); + + /// Creates a [JLongArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JLongArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewLongArray(length)), + ) as JLongArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + int operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetLongArrayElement(reference.pointer, index); + } + + void operator []=(int index, int value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetLongArrayElement(reference.pointer, index, value); + } + + Int64List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetLongArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetLongArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JLongArrayListView with ListMixin, NonGrowableListMixin { + final JLongArray _jarray; + + _JLongArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + int operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, int value) { + _jarray[index] = value; + } +} + +extension JLongArrayToList on JLongArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JLongArrayListView(this); +} + +final class _$JFloatArray$Type$ extends JType { + const _$JFloatArray$Type$(); + + @override + String get signature => '[F'; +} + +/// A fixed-length array of Java Float. +/// +/// Java equivalent of [Float32List]. +extension type JFloatArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JFloatArray$Type$(); + + /// Creates a [JFloatArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JFloatArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewFloatArray(length)), + ) as JFloatArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + double operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetFloatArrayElement(reference.pointer, index); + } + + void operator []=(int index, double value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetFloatArrayElement(reference.pointer, index, value); + } + + Float32List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetFloatArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetFloatArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JFloatArrayListView + with ListMixin, NonGrowableListMixin { + final JFloatArray _jarray; + + _JFloatArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + double operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, double value) { + _jarray[index] = value; + } +} + +extension JFloatArrayToList on JFloatArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JFloatArrayListView(this); +} + +final class _$JDoubleArray$Type$ extends JType { + const _$JDoubleArray$Type$(); + + @override + String get signature => '[D'; +} + +/// A fixed-length array of Java Double. +/// +/// Java equivalent of [Float64List]. +extension type JDoubleArray._(JObject _$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType type = _$JDoubleArray$Type$(); + + /// Creates a [JDoubleArray] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory JDoubleArray(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.NewDoubleArray(length)), + ) as JDoubleArray; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + double operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.GetDoubleArrayElement(reference.pointer, index); + } + + void operator []=(int index, double value) { + RangeError.checkValidIndex(index, this); + Jni.env.SetDoubleArrayElement(reference.pointer, index, value); + } + + Float64List getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator(rangeLength); + Jni.env.GetDoubleArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate(sizeOf() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable, skipCount); + Jni.env.SetDoubleArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _JDoubleArrayListView + with ListMixin, NonGrowableListMixin { + final JDoubleArray _jarray; + + _JDoubleArrayListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + double operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, double value) { + _jarray[index] = value; + } +} + +extension JDoubleArrayToList on JDoubleArray { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List get asDartList => _JDoubleArrayListView(this); +} diff --git a/pkgs/jni/lib/src/types.dart b/pkgs/jni/lib/src/types.dart index 58920c443..4c74e3563 100644 --- a/pkgs/jni/lib/src/types.dart +++ b/pkgs/jni/lib/src/types.dart @@ -31,12 +31,6 @@ mixin JCallable on JTypeBase { JObjectPtr obj, JMethodIDPtr methodID, Pointer args); } -/// Able to be constructed. -mixin JConstructable on JTypeBase { - DartT _newObject( - JClassPtr clazz, JMethodIDPtr methodID, Pointer args); -} - /// Able to be the type of a field that can be get and set. mixin JAccessible on JTypeBase { DartT _staticGet(JClassPtr clazz, JFieldIDPtr fieldID); @@ -45,80 +39,34 @@ mixin JAccessible on JTypeBase { void _instanceSet(JObjectPtr obj, JFieldIDPtr fieldID, DartT val); } -/// Only used for JNIgen. -/// -/// Makes constructing objects easier inside the generated bindings by allowing -/// a [JReference] to be created. This allows [JObject]s to use constructors -/// that call `super.fromReference` instead of factories. -@internal -const referenceType = _ReferenceType(); - -final class _ReferenceType extends JTypeBase - with JConstructable { - const _ReferenceType(); - +class JType extends JTypeBase + with JCallable, JAccessible { @override - JReference _newObject( - JClassPtr clazz, JMethodIDPtr methodID, Pointer args) { - return JGlobalReference(Jni.env.NewObjectA(clazz, methodID, args)); - } - - @internal - @override - String get signature => 'Ljava/lang/Object;'; -} - -abstract class JType extends JTypeBase - with JCallable, JConstructable, JAccessible { - /// Number of super types. Distance to the root type. - @internal - int get superCount; - - @internal - JType get superType; - - @internal - JType get nullableType; + final String signature; @internal - bool get isNullable => this == nullableType; - - @internal - const JType(); - - /// Creates an object from this type using the reference. - @internal - T fromReference(JReference reference); + const JType(this.signature); JClass get jClass { - if (signature.startsWith('L') && signature.endsWith(';')) { - return JClass.forName(signature.substring(1, signature.length - 1)); - } return JClass.forName(signature); } @override T _staticCall(JClassPtr clazz, JMethodIDPtr methodID, Pointer args) { final result = Jni.env.CallStaticObjectMethodA(clazz, methodID, args); - return fromReference(JGlobalReference(result)); + return JObject.fromReference(JGlobalReference(result)) as T; } @override T _instanceCall(JObjectPtr obj, JMethodIDPtr methodID, Pointer args) { - return fromReference( - JGlobalReference(Jni.env.CallObjectMethodA(obj, methodID, args))); - } - - @override - T _newObject(JClassPtr clazz, JMethodIDPtr methodID, Pointer args) { - return fromReference( - JGlobalReference(Jni.env.NewObjectA(clazz, methodID, args))); + return JObject.fromReference( + JGlobalReference(Jni.env.CallObjectMethodA(obj, methodID, args))) as T; } @override T _instanceGet(JObjectPtr obj, JFieldIDPtr fieldID) { - return fromReference( - JGlobalReference(Jni.env.GetObjectField(obj, fieldID))); + return JObject.fromReference( + JGlobalReference(Jni.env.GetObjectField(obj, fieldID))) as T; } @override @@ -129,8 +77,8 @@ abstract class JType extends JTypeBase @override T _staticGet(JClassPtr clazz, JFieldIDPtr fieldID) { - return fromReference( - JGlobalReference(Jni.env.GetStaticObjectField(clazz, fieldID))); + return JObject.fromReference( + JGlobalReference(Jni.env.GetStaticObjectField(clazz, fieldID))) as T; } @override @@ -139,29 +87,3 @@ abstract class JType extends JTypeBase Jni.env.SetStaticObjectField(clazz, fieldID, valRef.pointer); } } - -/// Lowest common ancestor of two types in the inheritance tree. -JType _lowestCommonAncestor(JType a, JType b) { - if (a is! JType || b is! JType) { - // If one of the types are nullable, the common super type should also be - // nullable. - a = a.nullableType; - b = b.nullableType; - } - while (a.superCount > b.superCount) { - a = a.superType; - } - while (b.superCount > a.superCount) { - b = b.superType; - } - while (a != b) { - a = a.superType; - b = b.superType; - } - return a; -} - -@internal -JType lowestCommonSuperType(List> types) { - return types.reduce(_lowestCommonAncestor); -} diff --git a/pkgs/jni/lib/src/util/jiterator.dart b/pkgs/jni/lib/src/util/jiterator.dart index 573747dbc..dfd782de5 100644 --- a/pkgs/jni/lib/src/util/jiterator.dart +++ b/pkgs/jni/lib/src/util/jiterator.dart @@ -9,74 +9,11 @@ import '../jreference.dart'; import '../types.dart'; @internal -final class $JIterator$NullableType$<$E extends JObject?> - extends JType?> { - final JType<$E> E; - - const $JIterator$NullableType$( - this.E, - ); - - @override - String get signature => r'Ljava/util/Iterator;'; - - @override - JIterator<$E>? fromReference(JReference reference) => - reference.isNull ? null : JIterator<$E>.fromReference(E, reference); - - @override - JType get superType => const $JObject$NullableType$(); - - @override - JType?> get nullableType => this; - - @override - final superCount = 1; - - @override - int get hashCode => Object.hash($JIterator$NullableType$, E); - - @override - bool operator ==(Object other) { - return other.runtimeType == ($JIterator$NullableType$<$E>) && - other is $JIterator$NullableType$<$E> && - E == other.E; - } -} - -@internal -final class $JIterator$Type$<$E extends JObject?> extends JType> { - final JType<$E> E; - - const $JIterator$Type$( - this.E, - ); +final class $JIterator$Type$ extends JType { + const $JIterator$Type$(); @override String get signature => r'Ljava/util/Iterator;'; - - @override - JIterator<$E> fromReference(JReference reference) => - JIterator<$E>.fromReference(E, reference); - - @override - JType get superType => const $JObject$Type$(); - - @override - JType?> get nullableType => $JIterator$NullableType$<$E>(E); - - @override - final superCount = 1; - - @override - int get hashCode => Object.hash($JIterator$Type$, E); - - @override - bool operator ==(Object other) { - return other.runtimeType == ($JIterator$Type$<$E>) && - other is $JIterator$Type$<$E> && - E == other.E; - } } class JIterator<$E extends JObject?> extends JObject implements Iterator<$E> { @@ -97,18 +34,7 @@ class JIterator<$E extends JObject?> extends JObject implements Iterator<$E> { static final _class = JClass.forName(r'java/util/Iterator'); /// The type which includes information such as the signature of this class. - static JType> type<$E extends JObject?>( - JType<$E> E, - ) { - return $JIterator$Type$<$E>(E); - } - - /// The type which includes information such as the signature of this class. - static JType?> nullableType<$E extends JObject?>( - JType<$E> E, - ) { - return $JIterator$NullableType$<$E>(E); - } + static const JType type = JType(r'Ljava/util/Iterator;'); $E? _current; diff --git a/pkgs/jni/lib/src/util/jlist.dart b/pkgs/jni/lib/src/util/jlist.dart index 40ddd7629..a4c6bf441 100644 --- a/pkgs/jni/lib/src/util/jlist.dart +++ b/pkgs/jni/lib/src/util/jlist.dart @@ -15,114 +15,216 @@ import 'jiterator.dart'; import 'jset.dart'; @internal -final class $JList$NullableType$<$E extends JObject?> - extends JType?> { - final JType<$E> E; - - const $JList$NullableType$( - this.E, - ); +final class $JList$Type$ extends JType { + const $JList$Type$(); @override String get signature => r'Ljava/util/List;'; +} - @override - JList<$E>? fromReference(JReference reference) => - reference.isNull ? null : JList<$E>.fromReference(E, reference); +extension type JList<$E extends JObject?>(JObject _$this) implements JObject { + static final _class = JClass.forName(r'java/util/List'); + + /// The type which includes information such as the signature of this class. + static const JType type = $JList$Type$(); + static final _arrayListClassRef = JClass.forName(r'java/util/ArrayList'); + static final _ctorId = _arrayListClassRef.constructorId(r'()V'); + JList.array() : _$this = _ctorId(_arrayListClassRef, []); + + static final _sizeId = _class.instanceMethodId(r'size', r'()I'); @override - JType get superType => const $JObject$Type$(); + int get length => _sizeId(this, const jintType(), [])!; @override - JType?> get nullableType => this; + set length(int newLength) { + RangeError.checkNotNegative(newLength); + while (length < newLength) { + add(null as $E); + } + while (newLength < length) { + removeAt(length - 1); + } + } + static final _getId = + _class.instanceMethodId(r'get', r'(I)Ljava/lang/Object;'); @override - final superCount = 1; + $E operator [](int index) { + RangeError.checkValidIndex(index, this); + return _getId(this, JObject.type, [JValueInt(index)]) as $E; + } + static final _setId = _class.instanceMethodId( + r'set', r'(ILjava/lang/Object;)Ljava/lang/Object;'); @override - int get hashCode => Object.hash($JList$NullableType$, E); + void operator []=(int index, $E value) { + RangeError.checkValidIndex(index, this); + _setId(this, JObject.type, [JValueInt(index), value]); + } + static final _addId = + _class.instanceMethodId(r'add', r'(Ljava/lang/Object;)Z'); @override - bool operator ==(Object other) { - return other.runtimeType == ($JList$NullableType$<$E>) && - other is $JList$NullableType$<$E> && - E == other.E; + void add($E element) { + _addId(this, const jbooleanType(), [element]); } -} -@internal -final class $JList$Type$<$E extends JObject?> extends JType> { - final JType<$E> E; + static final _collectionClass = JClass.forName('java/util/Collection'); + static final _addAllId = + _class.instanceMethodId(r'addAll', r'(Ljava/util/Collection;)Z'); + @override + void addAll(Iterable<$E> iterable) { + if (iterable is JObject) { + final iterableRef = (iterable as JObject).reference; + if (Jni.env.IsInstanceOf( + iterableRef.pointer, _collectionClass.reference.pointer)) { + _addAllId(this, const jbooleanType(), [iterableRef.pointer]); + return; + } + } + return super.addAll(iterable); + } - const $JList$Type$( - this.E, - ); + static final _clearId = _class.instanceMethodId(r'clear', r'()V'); + @override + void clear() { + _clearId(this, const jvoidType(), []); + } + static final _containsId = + _class.instanceMethodId(r'contains', r'(Ljava/lang/Object;)Z'); @override - String get signature => r'Ljava/util/List;'; + bool contains(Object? element) { + if (element is! JObject?) return false; + final elementRef = element?.reference ?? jNullReference; + return _containsId(this, const jbooleanType(), [elementRef.pointer])!; + } + static final _getRangeId = + _class.instanceMethodId(r'subList', r'(II)Ljava/util/List;'); @override - JList<$E> fromReference(JReference reference) => - JList<$E>.fromReference(E, reference); + JList<$E> getRange(int start, int end) { + RangeError.checkValidRange(start, end, length); + return _getRangeId( + this, $JList$Type$<$E>(E), [JValueInt(start), JValueInt(end)])!; + } + static final _indexOfId = + _class.instanceMethodId(r'indexOf', r'(Ljava/lang/Object;)I'); @override - JType get superType => const $JObject$Type$(); + int indexOf(Object? element, [int start = 0]) { + if (element is! JObject?) return -1; + if (start < 0) start = 0; + final elementRef = element?.reference ?? jNullReference; + if (start == 0) { + return _indexOfId(this, const jintType(), [elementRef.pointer])!; + } + return _indexOfId( + getRange(start, length), + const jintType(), + [elementRef.pointer], + )!; + } + static final _insertId = + _class.instanceMethodId(r'add', r'(ILjava/lang/Object;)V'); @override - JType?> get nullableType => $JList$NullableType$<$E>(E); + void insert(int index, $E element) { + _insertId(this, const jvoidType(), [JValueInt(index), element]); + } + static final _insertAllId = + _class.instanceMethodId(r'addAll', r'(ILjava/util/Collection;)Z'); @override - final superCount = 1; + void insertAll(int index, Iterable<$E> iterable) { + if (iterable is JObject) { + final iterableRef = (iterable as JObject).reference; + if (Jni.env.IsInstanceOf( + iterableRef.pointer, _collectionClass.reference.pointer)) { + _insertAllId( + this, + const jbooleanType(), + [JValueInt(index), iterableRef.pointer], + ); + return; + } + } + super.insertAll(index, iterable); + } + static final _isEmptyId = _class.instanceMethodId(r'isEmpty', r'()Z'); @override - int get hashCode => Object.hash($JList$Type$, E); + bool get isEmpty => _isEmptyId(this, const jbooleanType(), [])!; @override - bool operator ==(Object other) { - return other.runtimeType == ($JList$Type$<$E>) && - other is $JList$Type$<$E> && - E == other.E; - } -} + bool get isNotEmpty => !isEmpty; -class JList<$E extends JObject?> extends JObject with ListMixin<$E> { - @internal + static final _iteratorId = + _class.instanceMethodId(r'iterator', r'()Ljava/util/Iterator;'); @override - // ignore: overridden_fields - final JType> $type; + JIterator<$E> get iterator => _iteratorId(this, $JIterator$Type$<$E>(E), [])!; - @internal - final JType<$E> E; + static final _lastIndexOfId = + _class.instanceMethodId(r'lastIndexOf', r'(Ljava/lang/Object;)I'); + @override + int lastIndexOf(Object? element, [int? start]) { + if (element is! JObject?) return -1; + if (start == null || start >= length) start = length - 1; + final elementRef = element?.reference ?? jNullReference; + if (start == length - 1) { + return _lastIndexOfId(this, const jintType(), [elementRef.pointer]); + } + final range = getRange(0, start); + final res = _lastIndexOfId( + range, + const jintType(), + [elementRef.pointer], + ); + range.release(); + return res; + } - JList.fromReference( - this.E, - JReference reference, - ) : $type = type<$E>(E), - super.fromReference(reference); + static final _removeId = + _class.instanceMethodId(r'remove', r'(Ljava/lang/Object;)Z'); + @override + bool remove(Object? element) { + if (element is! JObject?) return false; + final elementRef = element?.reference ?? jNullReference; + return _removeId(this, const jbooleanType(), [elementRef.pointer]); + } - static final _class = JClass.forName(r'java/util/List'); + static final _removeAtId = + _class.instanceMethodId(r'remove', r'(I)Ljava/lang/Object;'); + @override + $E removeAt(int index) { + return _removeAtId(this, JObject.type, [JValueInt(index)])!; + } - /// The type which includes information such as the signature of this class. - static JType> type<$E extends JObject?>( - JType<$E> E, - ) { - return $JList$Type$<$E>(E); + @override + void removeRange(int start, int end) { + final range = getRange(start, end); + range.clear(); + range.release(); } - /// The type which includes information such as the signature of this class. - static JType?> nullableType<$E extends JObject?>(JType<$E> E) { - return $JList$NullableType$<$E>(E); + @override + JSet<$E> toSet() { + return toJSet(); } +} - static final _arrayListClassRef = JClass.forName(r'java/util/ArrayList'); - static final _ctorId = _arrayListClassRef.constructorId(r'()V'); - JList.array(this.E) - : $type = type<$E>(E), - super.fromReference(_ctorId(_arrayListClassRef, referenceType, [])); +final class _JListView<$E extends JObject?> with ListMixin<$E> { + final JList<$E> jlist; + + _JListView(this.jlist); + + static final _class = JClass.forName(r'java/util/List'); static final _sizeId = _class.instanceMethodId(r'size', r'()I'); + @override - int get length => _sizeId(this, const jintType(), [])!; + int get length => _sizeId(jlist, const jintType(), [])!; @override set length(int newLength) { @@ -140,7 +242,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { @override $E operator [](int index) { RangeError.checkValidIndex(index, this); - return _getId(this, E, [JValueInt(index)]); + return _getId(jlist, JObject.type, [JValueInt(index)]) as $E; } static final _setId = _class.instanceMethodId( @@ -148,14 +250,14 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { @override void operator []=(int index, $E value) { RangeError.checkValidIndex(index, this); - _setId(this, E, [JValueInt(index), value]); + _setId(jlist, JObject.type, [JValueInt(index), value]); } static final _addId = _class.instanceMethodId(r'add', r'(Ljava/lang/Object;)Z'); @override void add($E element) { - _addId(this, const jbooleanType(), [element]); + _addId(jlist, const jbooleanType(), [element]); } static final _collectionClass = JClass.forName('java/util/Collection'); @@ -167,7 +269,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { final iterableRef = (iterable as JObject).reference; if (Jni.env.IsInstanceOf( iterableRef.pointer, _collectionClass.reference.pointer)) { - _addAllId(this, const jbooleanType(), [iterableRef.pointer]); + _addAllId(jlist, const jbooleanType(), [iterableRef.pointer]); return; } } @@ -177,7 +279,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { static final _clearId = _class.instanceMethodId(r'clear', r'()V'); @override void clear() { - _clearId(this, const jvoidType(), []); + _clearId(jlist, const jvoidType(), []); } static final _containsId = @@ -186,7 +288,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { bool contains(Object? element) { if (element is! JObject?) return false; final elementRef = element?.reference ?? jNullReference; - return _containsId(this, const jbooleanType(), [elementRef.pointer])!; + return _containsId(jlist, const jbooleanType(), [elementRef.pointer])!; } static final _getRangeId = @@ -194,8 +296,8 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { @override JList<$E> getRange(int start, int end) { RangeError.checkValidRange(start, end, length); - return _getRangeId( - this, $JList$Type$<$E>(E), [JValueInt(start), JValueInt(end)])!; + return _getRangeId(jlist, JObject.type, [JValueInt(start), JValueInt(end)]) + as JList<$E>; } static final _indexOfId = @@ -206,7 +308,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { if (start < 0) start = 0; final elementRef = element?.reference ?? jNullReference; if (start == 0) { - return _indexOfId(this, const jintType(), [elementRef.pointer])!; + return _indexOfId(jlist, const jintType(), [elementRef.pointer])!; } return _indexOfId( getRange(start, length), @@ -219,7 +321,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { _class.instanceMethodId(r'add', r'(ILjava/lang/Object;)V'); @override void insert(int index, $E element) { - _insertId(this, const jvoidType(), [JValueInt(index), element]); + _insertId(jlist, const jvoidType(), [JValueInt(index), element]); } static final _insertAllId = @@ -243,7 +345,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { static final _isEmptyId = _class.instanceMethodId(r'isEmpty', r'()Z'); @override - bool get isEmpty => _isEmptyId(this, const jbooleanType(), [])!; + bool get isEmpty => _isEmptyId(jlist, const jbooleanType(), [])!; @override bool get isNotEmpty => !isEmpty; @@ -251,7 +353,8 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { static final _iteratorId = _class.instanceMethodId(r'iterator', r'()Ljava/util/Iterator;'); @override - JIterator<$E> get iterator => _iteratorId(this, $JIterator$Type$<$E>(E), [])!; + JIterator<$E> get iterator => + _iteratorId(jlist, $JIterator$Type$<$E>(E), [])!; static final _lastIndexOfId = _class.instanceMethodId(r'lastIndexOf', r'(Ljava/lang/Object;)I'); @@ -261,7 +364,7 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { if (start == null || start >= length) start = length - 1; final elementRef = element?.reference ?? jNullReference; if (start == length - 1) { - return _lastIndexOfId(this, const jintType(), [elementRef.pointer]); + return _lastIndexOfId(jlist, const jintType(), [elementRef.pointer]); } final range = getRange(0, start); final res = _lastIndexOfId( @@ -279,14 +382,14 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { bool remove(Object? element) { if (element is! JObject?) return false; final elementRef = element?.reference ?? jNullReference; - return _removeId(this, const jbooleanType(), [elementRef.pointer]); + return _removeId(jlist, const jbooleanType(), [elementRef.pointer]); } static final _removeAtId = _class.instanceMethodId(r'remove', r'(I)Ljava/lang/Object;'); @override $E removeAt(int index) { - return _removeAtId(this, E, [JValueInt(index)])!; + return _removeAtId(jlist, JObject.type, [JValueInt(index)])!; } @override @@ -298,13 +401,13 @@ class JList<$E extends JObject?> extends JObject with ListMixin<$E> { @override JSet<$E> toSet() { - return toJSet(E); + return toJSet(); } } extension ToJavaList on Iterable { - JList toJList(JType type) { - final list = JList.array(type); + JList toJList() { + final list = JList.array(); list.addAll(this); return list; } diff --git a/pkgs/jni/lib/src/util/util.dart b/pkgs/jni/lib/src/util/util.dart index 2509b63c4..858f29ad2 100644 --- a/pkgs/jni/lib/src/util/util.dart +++ b/pkgs/jni/lib/src/util/util.dart @@ -2,7 +2,7 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -export 'jiterator.dart' hide $JIterator$NullableType$, $JIterator$Type$; -export 'jlist.dart' hide $JList$NullableType$, $JList$Type$; +export 'jiterator.dart' hide $JIterator$Type$; +export 'jlist.dart' hide $JList$Type$; export 'jmap.dart' hide $JMap$NullableType$, $JMap$Type$; export 'jset.dart' hide $JSet$NullableType$, $JSet$Type$; diff --git a/pkgs/jni/pubspec.yaml b/pkgs/jni/pubspec.yaml index 929d861d8..f83c520ba 100644 --- a/pkgs/jni/pubspec.yaml +++ b/pkgs/jni/pubspec.yaml @@ -21,6 +21,7 @@ environment: dependencies: args: ^2.5.0 + collection: ^1.19.1 ffi: ^2.1.3 meta: ^1.15.0 package_config: ^2.1.0 @@ -29,6 +30,7 @@ dependencies: dev_dependencies: dart_flutter_team_lints: ^3.5.2 + dart_style: ^3.1.2 ffigen: path: ../ffigen jnigen: diff --git a/pkgs/jni/test/boxed_test.dart b/pkgs/jni/test/boxed_test.dart index d61938df6..d1f30dd66 100644 --- a/pkgs/jni/test/boxed_test.dart +++ b/pkgs/jni/test/boxed_test.dart @@ -79,68 +79,4 @@ void run({required TestRunnerCallback testRunner}) { expect(JBoolean(true).booleanValue(releaseOriginal: true), true); }); }); - testRunner('JByte.\$type hashCode and ==', () { - using((arena) { - final a = JByte(1)..releasedBy(arena); - final b = JByte(2)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JCharacter.\$type hashCode and ==', () { - using((arena) { - final a = JCharacter(1)..releasedBy(arena); - final b = JCharacter(2)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JShort.\$type hashCode and ==', () { - using((arena) { - final a = JShort(1)..releasedBy(arena); - final b = JShort(2)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JInteger.\$type hashCode and ==', () { - using((arena) { - final a = JInteger(1)..releasedBy(arena); - final b = JInteger(2)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JLong.\$type hashCode and ==', () { - using((arena) { - final a = JLong(1)..releasedBy(arena); - final b = JLong(2)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JFloat.\$type hashCode and ==', () { - using((arena) { - final a = JFloat(1.0)..releasedBy(arena); - final b = JFloat(2.0)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JDouble.\$type hashCode and ==', () { - using((arena) { - final a = JDouble(1.0)..releasedBy(arena); - final b = JDouble(2.0)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); - testRunner('JBoolean.\$type hashCode and ==', () { - using((arena) { - final a = JBoolean(true)..releasedBy(arena); - final b = JBoolean(false)..releasedBy(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - }); - }); } diff --git a/pkgs/jni/test/exception_test.dart b/pkgs/jni/test/exception_test.dart index ba3123f28..ee65a082d 100644 --- a/pkgs/jni/test/exception_test.dart +++ b/pkgs/jni/test/exception_test.dart @@ -38,7 +38,7 @@ void main() { void run({required TestRunnerCallback testRunner}) { JObject newRandom(JClass randomClass) { - return randomClass.constructorId('()V').call(randomClass, JObject.type, []); + return randomClass.constructorId('()V').call(randomClass, []); } testRunner('double free throws exception', () { diff --git a/pkgs/jni/test/jarray_test.dart b/pkgs/jni/test/jarray_test.dart index a3ffa4708..2ac3f77dc 100644 --- a/pkgs/jni/test/jarray_test.dart +++ b/pkgs/jni/test/jarray_test.dart @@ -158,7 +158,7 @@ void run({required TestRunnerCallback testRunner}) { using((arena) { final array = JShortArray(3)..releasedBy(arena); var counter = 0; - for (final element in array) { + for (final element in array.asDartList) { expect(element, array[counter]); ++counter; } diff --git a/pkgs/jni/test/jbyte_buffer_test.dart b/pkgs/jni/test/jbyte_buffer_test.dart index 666479dcb..a0ef22c97 100644 --- a/pkgs/jni/test/jbyte_buffer_test.dart +++ b/pkgs/jni/test/jbyte_buffer_test.dart @@ -195,22 +195,6 @@ void run({required TestRunnerCallback testRunner}) { }); }); - testRunner('type hashCode, ==', () { - using((arena) { - final a = testDataBuffer(arena); - final b = testDataBuffer(arena); - expect(a.$type, b.$type); - expect(a.$type.hashCode, b.$type.hashCode); - final c = JBuffer.fromReference(a.reference); - final d = JBuffer.fromReference(b.reference); - expect(c.$type, d.$type); - expect(c.$type.hashCode, d.$type.hashCode); - - expect(a.$type, isNot(c.$type)); - expect(a.$type.hashCode, isNot(c.$type.hashCode)); - }); - }); - testRunner('asUint8List releasing original', () { using((arena) { // Used as an example in [JByteBuffer]. diff --git a/pkgs/jni/tool/generate_jni_bindings.dart b/pkgs/jni/tool/generate_jni_bindings.dart index bd334d92a..a0bf91a1d 100644 --- a/pkgs/jni/tool/generate_jni_bindings.dart +++ b/pkgs/jni/tool/generate_jni_bindings.dart @@ -6,8 +6,21 @@ import 'dart:io'; import 'package:jnigen/jnigen.dart'; -void main() { - generateJniBindings( +Future main() async { + // final classes = [ + // 'java.util.List', + // 'java.util.Iterator', + // ]; + // await generateJniBindings( + // Config( + // outputConfig: OutputConfig( + // dartConfig: + // DartCodeOutputConfig(path: Uri.directory('lib/core_bindings'))), + // classes: classes, + // hide: classes, + // ), + // ); + await generateJniBindings( Config( androidSdkConfig: AndroidSdkConfig( addGradleDeps: true, diff --git a/pkgs/jni/tool/generate_primitive_arrays.dart b/pkgs/jni/tool/generate_primitive_arrays.dart new file mode 100644 index 000000000..e673b345b --- /dev/null +++ b/pkgs/jni/tool/generate_primitive_arrays.dart @@ -0,0 +1,194 @@ +// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +// Generates lib/src/primitive_jarrays.dart. + +import 'dart:io'; + +import 'package:dart_style/dart_style.dart'; + +class PrimitiveType { + final String name; + final String signature; + final String dartType; + final int size; + final bool isUnsigned; + + const PrimitiveType( + this.name, + this.signature, { + required this.dartType, + required this.size, + this.isUnsigned = false, + }); + + String get nativeDartListType { + if (dartType == 'double') { + return 'Float${size}List'; + } + return '${isUnsigned ? 'Uint' : 'Int'}${size}List'; + } + + String get nativeDartType { + if (dartType == 'double') { + return size == 32 ? 'Float' : 'Double'; + } + return '${isUnsigned ? 'Uint' : 'Int'}$size'; + } + + String get sizeInDoc => size == 8 ? 'eight' : '$size'; + + int get lowestInRange { + if (isUnsigned) { + return 0; + } + return -(1 << (size - 1)); + } + + int get highestInRange { + if (isUnsigned) { + return (1 << size) - 1; + } + return (1 << (size - 1)) - 1; + } +} + +void main() { + final outputUri = + Platform.script.resolve('../lib/src/primitive_jarrays.dart'); + final outputFile = File.fromUri(outputUri); + final s = StringBuffer(); + s.writeln(''' +// AUTO GENERATED. DO NOT EDIT! +// +// To regenerate, run `dart run tool/generate_primtive_arrays.dart` + +part of 'jarray.dart'; +'''); + const primitiveTypes = [ + PrimitiveType('Boolean', 'Z', dartType: 'bool', size: 8, isUnsigned: true), + PrimitiveType('Byte', 'B', dartType: 'int', size: 8), + PrimitiveType('Char', 'C', dartType: 'int', size: 16, isUnsigned: true), + PrimitiveType('Short', 'S', dartType: 'int', size: 16), + PrimitiveType('Int', 'I', dartType: 'int', size: 32), + PrimitiveType('Long', 'J', dartType: 'int', size: 64), + PrimitiveType('Float', 'F', dartType: 'double', size: 32), + PrimitiveType('Double', 'D', dartType: 'double', size: 64), + ]; + for (final type in primitiveTypes) { + final typeName = type.name; + final arrayName = 'J${typeName}Array'; + s.write(''' +final class _\$$arrayName\$Type\$ extends JType<$arrayName> { + const _\$$arrayName\$Type\$(); + + @override + String get signature => '[${type.signature}'; +} + +/// A fixed-length array of Java $typeName. +/// +'''); + if (type.dartType == 'int') { + s.write(''' +/// Integers stored in the list are truncated to their low ${type.sizeInDoc} bits +'''); + if (type.isUnsigned) { + s.write(''' +/// interpreted as an unsigned ${type.size}-bit integer with values in the +/// range ${type.lowestInRange} to +${type.highestInRange}. +/// +'''); + } else { + s.write(''' +/// interpreted as a signed ${type.size}-bit two's complement integer with values in the +/// range ${type.lowestInRange} to +${type.highestInRange}. +/// +'''); + } + } + s.write(''' +/// Java equivalent of [${type.nativeDartListType}]. +extension type $arrayName._(JObject _\$this) implements JObject { + /// The type which includes information such as the signature of this class. + static const JType<$arrayName> type = _\$$arrayName\$Type\$(); + + /// Creates a [$arrayName] of the given [length]. + /// + /// The [length] must be a non-negative integer. + factory $arrayName(int length) { + RangeError.checkNotNegative(length); + return JObject.fromReference( + JGlobalReference(Jni.env.New${typeName}Array(length)), + ) as $arrayName; + } + + /// The number of elements in this array. + int get length => Jni.env.GetArrayLength(reference.pointer); + + ${type.dartType} operator [](int index) { + RangeError.checkValidIndex(index, this); + return Jni.env.Get${typeName}ArrayElement(reference.pointer, index); + } + + void operator []=(int index, ${type.dartType} value) { + RangeError.checkValidIndex(index, this); + Jni.env.Set${typeName}ArrayElement(reference.pointer, index, value); + } + + ${type.nativeDartListType} getRange(int start, int end, {Allocator allocator = malloc}) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + final buffer = allocator<${type.nativeDartType}>(rangeLength); + Jni.env + .Get${typeName}ArrayRegion(reference.pointer, start, rangeLength, buffer); + return buffer.asTypedList(rangeLength, finalizer: allocator._nativeFree); + } + + void setRange(int start, int end, Iterable<${type.dartType}> iterable, + [int skipCount = 0]) { + RangeError.checkValidRange(start, end, length); + final rangeLength = end - start; + _allocate<${type.nativeDartType}>(sizeOf<${type.nativeDartType}>() * rangeLength, (ptr) { + ptr + .asTypedList(rangeLength) + .setRange(0, rangeLength, iterable${typeName == 'Boolean' ? '.map((e) => e ? 1 : 0)' : ''}, skipCount); + Jni.env.Set${typeName}ArrayRegion(reference.pointer, start, rangeLength, ptr); + }); + } +} + +final class _${arrayName}ListView + with ListMixin<${type.dartType}>, NonGrowableListMixin<${type.dartType}> { + final $arrayName _jarray; + + _${arrayName}ListView(this._jarray); + + @override + int get length => _jarray.length; + + @override + ${type.dartType} operator [](int index) { + return _jarray[index]; + } + + @override + void operator []=(int index, ${type.dartType} value) { + _jarray[index] = value; + } +} + +extension ${arrayName}ToList on $arrayName { + /// Returns a [List] view into this array. + /// + /// Any changes to this list will reflect in the original array as well. + List<${type.dartType}> get asDartList => _${arrayName}ListView(this); +} + +'''); + final formatter = DartFormatter( + languageVersion: DartFormatter.latestShortStyleLanguageVersion); + outputFile.writeAsStringSync(formatter.format(s.toString())); + } +} diff --git a/pkgs/jnigen/lib/src/bindings/dart_generator.dart b/pkgs/jnigen/lib/src/bindings/dart_generator.dart index d92ed11dd..b0c9d1ba2 100644 --- a/pkgs/jnigen/lib/src/bindings/dart_generator.dart +++ b/pkgs/jnigen/lib/src/bindings/dart_generator.dart @@ -29,7 +29,6 @@ const _override = '@$_core.override'; // package:jni types. const _jType = '$_jni.JType'; const _jPointer = '$_jni.JObjectPtr'; -const _jReference = '$_jni.JReference'; const _jGlobalReference = '$_jni.JGlobalReference'; const _jArray = '$_jni.JArray'; const _jArrayTypePrefix = '$_jni.\$JArray\$'; @@ -85,33 +84,6 @@ String _newLine({int depth = 0}) { return '\n${' ' * depth}'; } -/// Merges two maps. For the same keys, their value lists will be concatenated. -/// -/// ** After calling this, the original maps might get modified! ** -Map> _mergeMapValues(Map> a, Map> b) { - final merged = >{}; - for (final key in {...a.keys, ...b.keys}) { - if (!a.containsKey(key)) { - merged[key] = b[key]!; - continue; - } - if (!b.containsKey(key)) { - merged[key] = a[key]!; - continue; - } - - // Merging the smaller one to the bigger one - if (a[key]!.length > b[key]!.length) { - merged[key] = a[key]!; - merged[key]!.addAll(b[key]!); - } else { - merged[key] = b[key]!; - merged[key]!.addAll(a[key]!); - } - } - return merged; -} - /// **Naming Convention** /// /// Let's take the following code as an example: @@ -313,9 +285,6 @@ class _ClassGenerator extends Visitor { _ClassGenerator(this.config, this.s, this.resolver); - static const staticTypeGetter = 'type'; - static const instanceTypeGetter = '\$$staticTypeGetter'; - void generateFieldsAndMethods(ClassDecl node, String classRef) { final fieldGenerator = _FieldGenerator( config, @@ -377,87 +346,20 @@ ${modifier}final $classRef = $_jni.JClass.forName(r'$internalName'); .map((typeParam) => '$_typeParamPrefix$typeParam') .join(', ') .encloseIfNotEmpty('<', '>'); - final staticTypeGetterCallArgs = - typeParams.join(', ').encloseIfNotEmpty('(', ')'); - final typeClassesDef = typeParams - .map( - (typeParam) => ''' - $_internal - final $_jType<$_typeParamPrefix$typeParam> $typeParam; -''', - ) - .join('\n'); - final ctorTypeClassesDef = typeParams - .map((typeParam) => 'this.$typeParam,') - .join(_newLine(depth: 2)); - final superClass = node.classDecl.superclass! as DeclaredType; - final superTypeClassesCall = superClass.classDecl.isObject - ? '' - : superClass.params - .accept(_TypeClassGenerator(resolver)) - .map((typeClass) => '${typeClass.name},') - .join(_newLine(depth: 2)); s.write(''' -class $name$typeParamsDef extends $superName { - $_internal - $_override - final $_jType<$name$typeParamsCall> $instanceTypeGetter; - - $typeClassesDef - - $_internal - $name.fromReference( - $ctorTypeClassesDef - $_jReference reference, - ) : - $instanceTypeGetter = $staticTypeGetter$typeParamsCall$staticTypeGetterCallArgs, - super.fromReference( - $superTypeClassesCall - reference - ); - +extension type $name$typeParamsDef._($_jObject _\$this) implements $superName { '''); final classRef = writeClassRef(node); // Static TypeClass getter. - void generateTypeClassGetter({required bool isNullable}) { - s.writeln( - ' /// The type which includes information such as the signature of this class.', - ); - final typeClassName = - isNullable ? node.nullableTypeClassName : node.typeClassName; - final typeClassGetterName = - isNullable ? 'nullableType' : staticTypeGetter; - final questionMark = isNullable ? '?' : ''; - if (typeParams.isEmpty) { - s.write(''' - static const $_jType<$name$typeParamsCall$questionMark> $typeClassGetterName = $typeClassName$typeParamsCall(); -'''); - } else { - final staticTypeGetterTypeClassesDef = typeParams - .map( - (typeParam) => '$_jType<$_typeParamPrefix$typeParam> $typeParam,', - ) - .join(_newLine(depth: 2)); - final typeClassesCall = typeParams - .map((typeParam) => '$typeParam,') - .join(_newLine(depth: 3)); - s.write(''' - static $_jType<$name$typeParamsCall$questionMark> $typeClassGetterName$typeParamsDef( - $staticTypeGetterTypeClassesDef - ) { - return $typeClassName$typeParamsCall( - $typeClassesCall + s.writeln( + ' /// The type which includes information such as the signature of this class.', ); - } - + final typeClassName = node.typeClassName; + s.write(''' + static const $_jType<$name> type = $typeClassName(); '''); - } - } - - generateTypeClassGetter(isNullable: true); - generateTypeClassGetter(isNullable: false); // Fields and Methods generateFieldsAndMethods(node, classRef); @@ -555,16 +457,10 @@ class $name$typeParamsDef extends $superName { $implClassName$typeParamsCall \$impl, ) { '''); - final typeClassesCall = typeParams - .map((typeParam) => '\$impl.$typeParam,') - .join(_newLine(depth: 3)); s.write(''' final \$i = $_jni.JImplementer(); implementIn(\$i, \$impl); - return $name$typeParamsCall.fromReference( - $typeClassesCall - \$i.implementReference(), - ); + return \$i.implement<$name$typeParamsCall>(); } '''); } @@ -581,26 +477,16 @@ class $name$typeParamsDef extends $superName { // Used for interface implementation. if (node.declKind == DeclKind.interfaceKind) { // Abstract Impl class. - final typeClassGetters = typeParams - .map( - (typeParam) => - '$_jType<$_typeParamPrefix$typeParam> get $typeParam;', - ) - .join(_newLine(depth: 1)); - final abstractFactoryArgs = [ - ...typeParams.map( - (typeParam) => 'required $_jType<\$$typeParam> $typeParam,', - ), - ...node.methods.accept(_AbstractImplFactoryArg(resolver)), - ].join(_newLine(depth: 2)).encloseIfNotEmpty('{', '}'); + final abstractFactoryArgs = node.methods + .accept(_AbstractImplFactoryArg(resolver)) + .join(_newLine(depth: 2)) + .encloseIfNotEmpty('{', '}'); s.write(''' abstract base mixin class $implClassName$typeParamsDef { factory $implClassName( $abstractFactoryArgs ) = _$implClassName$typeParamsCall; - $typeClassGetters - '''); final abstractImplMethod = _AbstractImplMethod(resolver, s); for (final method in node.methods) { @@ -610,22 +496,14 @@ abstract base mixin class $implClassName$typeParamsDef { // Concrete Impl class. // This is for passing closures instead of implementing the class. - final concreteCtorArgs = [ - ...typeParams.map((typeParam) => 'required this.$typeParam,'), - ...node.methods.accept(_ConcreteImplClosureCtorArg(resolver)), - ].join(_newLine(depth: 2)).encloseIfNotEmpty('{', '}'); + final concreteCtorArgs = node.methods + .accept(_ConcreteImplClosureCtorArg(resolver)) + .join(_newLine(depth: 2)) + .encloseIfNotEmpty('{', '}'); final setClosures = node.methods .map((method) => '_${method.finalName} = ${method.finalName}') .join(', ') .encloseIfNotEmpty(' : ', ''); - final typeClassesDef = typeParams - .map( - (typeParam) => ''' -$_override -final $_jType<\$$typeParam> $typeParam; -''', - ) - .join(_newLine(depth: 1)); s.write(''' final class _$implClassName$typeParamsDef with $implClassName$typeParamsCall { @@ -633,8 +511,6 @@ final class _$implClassName$typeParamsDef with $implClassName$typeParamsCall { $concreteCtorArgs )$setClosures; - $typeClassesDef - '''); final concreteClosureDef = _ConcreteImplClosureDef(resolver, s); for (final method in node.methods) { @@ -648,99 +524,18 @@ final class _$implClassName$typeParamsDef with $implClassName$typeParamsCall { s.writeln('}'); } // TypeClass definition. - void generateTypeClass({required bool isNullable}) { - final typeClassName = - isNullable ? node.nullableTypeClassName : node.typeClassName; - final typeClassesCall = - typeParams.map((typeParam) => '$typeParam,').join(_newLine(depth: 2)); - final signature = node.signature; - final superType = superClass.accept(_TypeClassGenerator(resolver)).name; - final hashCodeTypeClasses = typeParams.join(', '); - final equalityTypeClasses = typeParams - .map((typeParam) => ' &&\n $typeParam == other.$typeParam') - .join(); - final hashCode = typeParams.isEmpty - ? '($typeClassName).hashCode' - : 'Object.hash($typeClassName, $hashCodeTypeClasses)'; - final nullableType = isNullable - ? 'this' - : (DeclaredType( - binaryName: node.binaryName, - annotations: [Annotation.nullable], - params: node.allTypeParams - .map( - (typeParam) => TypeVar(name: typeParam.name) - ..origin = TypeParam( - name: typeParam.name, - annotations: [Annotation.nonNull], - bounds: typeParam.bounds, - ), - ) - .toList(), - )..classDecl = node) - .accept(_TypeClassGenerator(resolver)) - .name; - final nullable = isNullable ? '?' : ''; - s.write(''' -final class $typeClassName$typeParamsDef extends $_jType<$name$typeParamsCall$nullable> { - $typeClassesDef - + final signature = node.signature; + s.write(''' +final class $typeClassName extends $_jType<$name> { $_internal - const $typeClassName( - $ctorTypeClassesDef - ); + const $typeClassName(); $_internal $_override String get signature => r'$signature'; - - $_internal - $_override - $name$typeParamsCall$nullable fromReference($_jReference reference) => - '''); - if (isNullable) { - s.write(''' - reference.isNull ? null : $name$typeParamsCall.fromReference( - $typeClassesCall - reference, - ); -'''); - } else { - s.write(''' - $name$typeParamsCall.fromReference( - $typeClassesCall - reference, - ); -'''); - } - s.write(''' - $_internal - $_override - $_jType get superType => $superType; - - $_internal - $_override - $_jType<$name$typeParamsCall?> get nullableType => $nullableType; - - $_internal - $_override - final superCount = ${node.superCount}; - - $_override - int get hashCode => $hashCode; - - $_override - bool operator ==(Object other) { - return other.runtimeType == ($typeClassName$typeParamsCall) && - other is $typeClassName$typeParamsCall$equalityTypeClasses; - } } '''); - } - - generateTypeClass(isNullable: true); - generateTypeClass(isNullable: false); log.finest('Generated bindings for class ${node.binaryName}'); } @@ -787,6 +582,10 @@ class _TypeGenerator extends TypeVisitor { final bool forInterfaceImplementation; + /// Whether or not to return the equivalent boxed type class for primitives. + /// Only for interface implemetation. + final bool boxPrimitives; + /// Whether the generic types should be erased. final bool typeErasure; @@ -798,6 +597,7 @@ class _TypeGenerator extends TypeVisitor { const _TypeGenerator( this.resolver, { this.forInterfaceImplementation = false, + this.boxPrimitives = false, this.typeErasure = false, this.includeNullability = true, this.arrayType = false, @@ -855,7 +655,10 @@ class _TypeGenerator extends TypeVisitor { if (arrayType) { return node.name.capitalize(); } - return node.dartType; + if (node.name == 'void') { + return 'void'; + } + return boxPrimitives ? '$_jni.J${node.boxedName}' : node.dartType; } @override @@ -903,17 +706,8 @@ class _TypeGenerator extends TypeVisitor { } } -class _TypeClass { - final String name; - final bool canBeConst; - - const _TypeClass(this.name, this.canBeConst); -} - /// Generates the type class. -class _TypeClassGenerator extends TypeVisitor<_TypeClass> { - final bool isConst; - +class _TypeClassGenerator extends TypeVisitor { /// Whether the top-type of the current type being visited is nullable. /// /// For example the top-type of `T` in `Foo` is `Bar`, this @@ -937,7 +731,6 @@ class _TypeClassGenerator extends TypeVisitor<_TypeClass> { _TypeClassGenerator( this.resolver, { - this.isConst = true, this.boxPrimitives = false, this.forInterfaceImplementation = false, this.includeNullability = true, @@ -946,11 +739,10 @@ class _TypeClassGenerator extends TypeVisitor<_TypeClass> { }); @override - _TypeClass visitArrayType(ArrayType node) { + String visitArrayType(ArrayType node) { final innerTypeClass = node.elementType.accept( _TypeClassGenerator( resolver, - isConst: false, boxPrimitives: false, forInterfaceImplementation: forInterfaceImplementation, // Do type erasure for interface implementation. @@ -968,115 +760,32 @@ class _TypeClassGenerator extends TypeVisitor<_TypeClass> { isTopTypeNullable: true, ), ); - final ifConst = innerTypeClass.canBeConst && isConst ? 'const ' : ''; - final type = includeNullability && node.isNullable && isTopTypeNullable - ? 'NullableType' - : 'Type'; if (node.elementType is PrimitiveType) { - return _TypeClass( - '$ifConst$_jni.\$J${innerType}Array\$$type\$()', - innerTypeClass.canBeConst, - ); + return '$_jni.\$J${innerType}Array\$Type\$()'; } - return _TypeClass( - '$ifConst$_jArrayTypePrefix$type\$<$innerType>(${innerTypeClass.name})', - innerTypeClass.canBeConst, - ); + return '${_jArrayTypePrefix}Type\$<$innerType>($innerTypeClass)'; } @override - _TypeClass visitDeclaredType(DeclaredType node) { + String visitDeclaredType(DeclaredType node) { if (node.classDecl.isObject) { // The class is not generated, fall back to `JObject`. return super.visitDeclaredType(node); } - final allTypeClasses = node.mapTypeParameters( - (isNullable, definedType) { - return definedType.accept(_TypeClassGenerator( - resolver, - isConst: false, - boxPrimitives: false, - forInterfaceImplementation: forInterfaceImplementation, - typeErasure: forInterfaceImplementation, - isTopTypeNullable: isNullable, - )); - }, - ); - - // Can be const if all the type parameters are defined and each of them are - // also const. - final canBeConst = allTypeClasses.every((e) => e.canBeConst); - - // Add const to subexpressions if the entire expression is not const. - final allTypeParams = allTypeClasses - .map((typeClass) => - '${typeClass.canBeConst && !canBeConst ? 'const ' : ''}' - '${typeClass.name}') - .toList(); - - final args = allTypeParams.join(', '); - final ifConst = isConst && canBeConst ? 'const ' : ''; - final type = includeNullability && node.isNullable && isTopTypeNullable - ? node.classDecl.nullableTypeClassName - : node.classDecl.typeClassName; - - final typeArgsList = node.mapTypeParameters( - (isNullable, definedType) { - return definedType.accept( - _TypeGenerator( - resolver, - forInterfaceImplementation: forInterfaceImplementation, - // Do type erasure for interface implementation. - typeErasure: forInterfaceImplementation, - isTopTypeNullable: isNullable, - ), - ); - }, - ); - final typeArgs = typeArgsList.join(', ').encloseIfNotEmpty('<', '>'); + final type = node.classDecl.finalName; final prefix = resolver.resolvePrefix(node.classDecl); - return _TypeClass('$ifConst$prefix$type$typeArgs($args)', canBeConst); - } - - @override - _TypeClass visitPrimitiveType(PrimitiveType node) { - final ifConst = isConst ? 'const ' : ''; - final name = boxPrimitives - ? '$_jni.\$J${node.boxedName}\$Type\$' - : '$_jni.j${node.name}Type'; - return _TypeClass('$ifConst$name()', true); + return '$prefix$type.type'; } @override - _TypeClass visitTypeVar(TypeVar node) { - // TODO(https://github.com/dart-lang/native/issues/704): Tighten to typevar - // bounds instead. - final type = includeNullability && node.hasQuestionMark && isTopTypeNullable - ? 'NullableType' - : 'Type'; - final convertToNullable = - includeNullability && node.hasQuestionMark && isTopTypeNullable - ? '.nullableType' - : ''; - if (typeErasure) { - final ifConst = isConst ? 'const ' : ''; - return _TypeClass('$ifConst$_jObjectTypePrefix$type\$()', true); - } - if (forInterfaceImplementation) { - if (node.origin.parent is ClassDecl) { - return _TypeClass( - '_\$impls[\$p]!.${node.name}$convertToNullable', - false, - ); - } - final ifConst = isConst ? 'const ' : ''; - return _TypeClass('$ifConst$_jObjectTypePrefix$type\$()', true); - } - return _TypeClass('${node.name}$convertToNullable', false); + String visitPrimitiveType(PrimitiveType node) { + return boxPrimitives + ? '$_jni.J${node.boxedName}.type' + : '$_jni.j${node.name}.type'; } @override - _TypeClass visitWildcard(Wildcard node) { + String visitWildcard(Wildcard node) { // TODO(https://github.com/dart-lang/native/issues/701): Support wildcards. if (node.superBound != null || node.extendsBound == null) { // Dart does not support `* super T` wildcards. Fall back to Object?. @@ -1088,7 +797,6 @@ class _TypeClassGenerator extends TypeVisitor<_TypeClass> { forInterfaceImplementation: forInterfaceImplementation, includeNullability: includeNullability && node.isNullable && isTopTypeNullable, - isConst: isConst, typeErasure: typeErasure, isTopTypeNullable: true, ); @@ -1096,12 +804,8 @@ class _TypeClassGenerator extends TypeVisitor<_TypeClass> { } @override - _TypeClass visitNonPrimitiveType(ReferredType node) { - final ifConst = isConst ? 'const ' : ''; - final type = includeNullability && node.isNullable && isTopTypeNullable - ? 'NullableType' - : 'Type'; - return _TypeClass('$ifConst$_jObjectTypePrefix$type\$()', true); + String visitNonPrimitiveType(ReferredType node) { + return '$_jObjectTypePrefix$Type\$()'; } } @@ -1132,9 +836,8 @@ class _JniResultGetter extends TypeVisitor { @override String visitNonPrimitiveType(ReferredType node) { - final typeClass = node.accept(_TypeClassGenerator(resolver)).name; final type = node.accept(_TypeGenerator(resolver)); - return 'object<$type>($typeClass)'; + return 'object<$type>()'; } } @@ -1208,18 +911,30 @@ ${modifier}final _id_$name = '''); } - String dartOnlyGetter(Field node) { + String getter(Field node) { final name = node.finalName; final self = node.isStatic ? classRef : _self; - final type = node.type.accept(_TypeClassGenerator(resolver)).name; - return '_id_$name.get($self, $type)'; + final String typeClass; + if (node.type is PrimitiveType) { + typeClass = node.type.accept(_TypeClassGenerator(resolver)); + } else { + typeClass = 'const $_jObjectTypePrefix' + '${node.isNullable ? 'NullableType\$' : 'Type\$'}()'; + } + return '_id_$name.get($self, $typeClass)'; } - String dartOnlySetter(Field node) { + String setter(Field node) { final name = node.finalName; final self = node.isStatic ? classRef : _self; - final type = node.type.accept(_TypeClassGenerator(resolver)).name; - return '_id_$name.set($self, $type, value)'; + final String typeClass; + if (node.type is PrimitiveType) { + typeClass = node.type.accept(_TypeClassGenerator(resolver)); + } else { + typeClass = 'const $_jObjectTypePrefix' + '${node.isNullable ? 'NullableType\$' : 'Type\$'}()'; + } + return '_id_$name.set($self, $typeClass, value)'; } void writeDocs(Field node, {required bool writeReleaseInstructions}) { @@ -1254,14 +969,14 @@ ${modifier}final _id_$name = final ifStatic = node.isStatic && !isTopLevel ? 'static ' : ''; final type = node.type.accept(_TypeGenerator(resolver)); s.write('$ifStatic$type get $name => '); - s.write(dartOnlyGetter(node)); + s.write(getter(node)); s.writeln(';\n'); if (!node.isFinal) { // Setter docs. writeDocs(node, writeReleaseInstructions: true); s.write('${ifStatic}set $name($type value) => '); - s.write(dartOnlySetter(node)); + s.write(setter(node)); s.writeln(';\n'); } } @@ -1348,7 +1063,12 @@ ${modifier}final _$name = $_protectedExtension '_id_$name as $_jni.JMethodIDPtr', ...node.params.accept(const _ParamCall()), ].join(', '); - return '_$name($params).reference'; + final typeParamsCall = node.classDecl.allTypeParams + .map((typeParam) => '$_typeParamPrefix${typeParam.name}') + .join(', ') + .encloseIfNotEmpty('<', '>'); + return '_$name($params).object' + '<${node.classDecl.finalName}$typeParamsCall>()'; } String methodCall(Method node) { @@ -1383,27 +1103,6 @@ ${modifier}final _$name = $_protectedExtension } node.javadoc?.accept(_DocGenerator(s, depth: 1)); - // Used for inferring the type parameter from the given parameters. - final typeLocators = node.params - .accept(_ParamTypeLocator(resolver: resolver)) - .fold(>{}, _mergeMapValues).map( - (key, value) => - MapEntry(key, value.delimited(', ').encloseIfNotEmpty('[', ']')), - ); - - bool isRequired(TypeParam typeParam) { - return (typeLocators[typeParam.name] ?? '').isEmpty; - } - - final typeInference = - (node.isConstructor ? node.classDecl.allTypeParams : node.typeParams) - .where((tp) => !isRequired(tp)) - .map((tp) => tp.name) - .map( - (tp) => '$tp ??= $_jni.lowestCommonSuperType' - '(${typeLocators[tp]}) as $_jType<$_typeParamPrefix$tp>;', - ) - .join(_newLine(depth: 2)); // This is needed to keep the references alive in the scope while waiting // for the FFI call. final localReferences = node.params @@ -1415,31 +1114,11 @@ ${modifier}final _$name = $_protectedExtension final name = node.finalName; final ctorName = name == 'new\$' ? className : '$className.$name'; final paramsDef = node.params.accept(_ParamDef(resolver)).delimited(', '); - final typeParamsCall = node.classDecl.allTypeParams - .map((typeParam) => '$_typeParamPrefix${typeParam.name}') - .join(', ') - .encloseIfNotEmpty('<', '>'); - final typeClassDef = node.classDecl.allTypeParams - .map( - (typeParam) => typeParam.accept( - _CtorTypeClassDef(isRequired: isRequired(typeParam)), - ), - ) - .delimited(', ') - .encloseIfNotEmpty('{', '}'); - final typeClassCall = node.classDecl.allTypeParams - .map((typeParam) => typeParam.name) - .delimited(', '); - final ctorExpr = constructor(node); s.write(''' - factory $ctorName($paramsDef$typeClassDef) { - $typeInference + factory $ctorName($paramsDef) { ${localReferences.join(_newLine(depth: 2))} - return ${node.classDecl.finalName}$typeParamsCall.fromReference( - $typeClassCall - $ctorExpr - ); + return $ctorExpr; } '''); @@ -1453,14 +1132,6 @@ ${modifier}final _$name = $_protectedExtension : node.returnType.accept(_TypeGenerator(resolver)); final ifStatic = node.isStatic && !isTopLevel ? 'static ' : ''; final defArgs = node.params.accept(_ParamDef(resolver)).toList(); - final typeClassDef = node.typeParams - .map( - (typeParam) => typeParam.accept( - _MethodTypeClassDef(isRequired: isRequired(typeParam)), - ), - ) - .delimited(', ') - .encloseIfNotEmpty('{', '}'); final typeParamsDef = node.typeParams .accept(const _TypeParamDef()) .join(', ') @@ -1470,17 +1141,16 @@ ${modifier}final _$name = $_protectedExtension localReferences.removeLast(); } final params = defArgs.delimited(', '); - s.write(' $ifStatic$returnType $name$typeParamsDef($params$typeClassDef)'); + s.write(' $ifStatic$returnType $name$typeParamsDef($params)'); final callExpr = methodCall(node); if (isSuspendFun(node)) { final returningType = node.asyncReturnType!.accept(_TypeGenerator(resolver)); final returningTypeClass = - node.asyncReturnType!.accept(_TypeClassGenerator(resolver)).name; + node.asyncReturnType!.accept(_TypeClassGenerator(resolver)); final isNullable = node.asyncReturnType!.isNullable; final continuation = node.params.last.finalName; s.write('''async { - $typeInference final \$p = $_jni.ReceivePort(); final _\$$continuation = $_protectedExtension.newPortContinuation(\$p); ${localReferences.join(_newLine(depth: 2))} @@ -1511,7 +1181,6 @@ ${modifier}final _$name = $_protectedExtension } else { final returning = returnType == 'void' ? callExpr : 'return $callExpr'; s.writeln('''{ - $typeInference ${localReferences.join(_newLine(depth: 2))} $returning; } @@ -1581,45 +1250,6 @@ ${modifier}final _$name = $_protectedExtension } } -/// Generates the method type param definition. -/// -/// For example `required JObjType $T` in: -/// ```dart -/// void bar(..., {required JObjType $T}) => ... -/// ``` -class _MethodTypeClassDef extends Visitor { - final bool isRequired; - - const _MethodTypeClassDef({required this.isRequired}); - - @override - String visit(TypeParam node) { - return '${isRequired ? 'required ' : ''}$_jType' - '<$_typeParamPrefix${node.name}>${isRequired ? '' : '?'} ${node.name}'; - } -} - -/// Generates the class type param definition. Used only in constructors. -/// -/// For example `required this.$T` in: -/// ```dart -/// class Foo { -/// final JObjType $T; -/// Foo(..., {required this.$T}) => ... -/// } -/// ``` -class _CtorTypeClassDef extends Visitor { - final bool isRequired; - - const _CtorTypeClassDef({required this.isRequired}); - - @override - String visit(TypeParam node) { - return '${isRequired ? 'required ' : ''} $_jType' - '<$_typeParamPrefix${node.name}>${isRequired ? '' : '?'} ${node.name}'; - } -} - /// Method parameter's definition. /// /// For example `Foo foo` in: @@ -1724,112 +1354,6 @@ class OutsideInBuffer { } } -/// The ways to locate each type parameter. -/// -/// For example in `JArray> a`, `T` can be retreived using -/// ```dart -/// ((((a.$type as JArrayType).elementType) as $JMapType).K) -/// as JObjType<$T> -/// ``` -/// and -/// ```dart -/// ((((a.$type as JArrayType).elementType) as $JMapType).V) -/// as JObjType<$T> -/// ``` -class _ParamTypeLocator extends Visitor>> { - final Resolver resolver; - - _ParamTypeLocator({required this.resolver}); - - @override - Map> visit(Param node) { - if (node.isNullable) { - return {}; - } - return node.type.accept(_TypeVarLocator(resolver: resolver)).map( - (key, value) => MapEntry( - key, - value - .map( - (e) => (e..appendLeft('${node.finalName}.\$type')).toString(), - ) - .toList(), - ), - ); - } -} - -class _TypeVarLocator extends TypeVisitor>> { - final Resolver resolver; - - _TypeVarLocator({required this.resolver}); - - @override - Map> visitNonPrimitiveType(ReferredType node) { - return {}; - } - - @override - Map> visitWildcard(Wildcard node) { - // TODO(https://github.com/dart-lang/native/issues/701): Support wildcards. - if (node.superBound != null || node.extendsBound == null) { - // Dart does not support `* super T` wildcards. Fall back to Object?. - return super.visitWildcard(node); - } - return node.extendsBound!.accept(this); - } - - @override - Map> visitTypeVar(TypeVar node) { - return { - node.name: [OutsideInBuffer()], - }; - } - - @override - Map> visitDeclaredType(DeclaredType node) { - if (node.classDecl.isObject) { - // The class is not generated, fall back to `JObject`. - return super.visitDeclaredType(node); - } - final offset = node.classDecl.allTypeParams.length - node.params.length; - final result = >{}; - final prefix = resolver.resolvePrefix(node.classDecl); - final typeClass = '$prefix${node.classDecl.typeClassName}'; - final typeClassParams = List.filled( - node.classDecl.allTypeParams.length, - '$_core.dynamic', - ).join(', ').encloseIfNotEmpty('<', '>'); - for (var i = 0; i < node.params.length; ++i) { - final typeParam = node.classDecl.allTypeParams[i + offset].name; - final exprs = node.params[i].accept(this); - for (final expr in exprs.entries) { - for (final buffer in expr.value) { - buffer.appendLeft('('); - buffer.prependRight(' as $typeClass$typeClassParams).$typeParam'); - result[expr.key] = (result[expr.key] ?? [])..add(buffer); - } - } - } - return result; - } - - @override - Map> visitArrayType(ArrayType node) { - final exprs = node.elementType.accept(this); - for (final e in exprs.values.expand((i) => i)) { - e.appendLeft('(('); - e.prependRight(' as ${_jArray}Type).elementType as $_jType)'); - } - return exprs; - } - - @override - Map> visitPrimitiveType(PrimitiveType node) { - return {}; - } -} - /// Method defintion for Impl abstract class used for interface implementation. class _AbstractImplMethod extends Visitor { final Resolver resolver; @@ -2009,22 +1533,18 @@ class _InterfaceParamCast extends Visitor { @override void visit(Param node) { - final typeClass = node.type - .accept( - _TypeClassGenerator( - resolver, - boxPrimitives: true, - forInterfaceImplementation: true, - includeNullability: false, - ), - ) - .name; - final nullable = node.isNullable && node.type is! PrimitiveType ? '?' : '!'; - s.write('\$a![$paramIndex]$nullable.as($typeClass, releaseOriginal: true)'); if (node.type is PrimitiveType) { + final type = node.type.accept(_TypeGenerator( + resolver, + forInterfaceImplementation: true, + boxPrimitives: true, + )); + s.write('(\$a![$paramIndex] as $type)'); // Convert to Dart type. final name = node.type.name; s.write('.${name}Value(releaseOriginal: true)'); + } else { + s.write('\$a![$paramIndex]'); } s.writeln(','); } diff --git a/pkgs/jnigen/lib/src/bindings/linker.dart b/pkgs/jnigen/lib/src/bindings/linker.dart index 512ee4607..3b3d9a757 100644 --- a/pkgs/jnigen/lib/src/bindings/linker.dart +++ b/pkgs/jnigen/lib/src/bindings/linker.dart @@ -154,8 +154,6 @@ class _ClassLinker extends Visitor { } } - node.superCount = superclass.superCount + 1; - final fieldLinker = _FieldLinker(typeLinker); for (final field in node.fields) { field.classDecl = node; diff --git a/pkgs/jnigen/lib/src/config/config_types.dart b/pkgs/jnigen/lib/src/config/config_types.dart index e65bd6523..863fa1dce 100644 --- a/pkgs/jnigen/lib/src/config/config_types.dart +++ b/pkgs/jnigen/lib/src/config/config_types.dart @@ -274,6 +274,7 @@ class Config { this.logLevel = Level.INFO, this.dumpJsonTo, this.imports, + this.hide, this.visitors}) { for (final className in classes) { _validateClassName(className); @@ -323,6 +324,9 @@ class Config { /// List of dependencies. final List? imports; + /// Hide concrete classes from the imports + final List? hide; + /// Call [importClasses] before using this. late final Map importedClasses; @@ -387,6 +391,9 @@ class Config { final classes = entry.value as YamlMap; for (final classEntry in classes.entries) { final binaryName = classEntry.key as String; + if (hide?.contains(binaryName) ?? false) { + continue; + } final decl = classEntry.value as YamlMap; if (importedClasses.containsKey(binaryName)) { log.fatal( @@ -400,7 +407,6 @@ class Config { ) ..path = '$importPath/$filePath' ..finalName = decl['name'] as String - ..superCount = decl['super_count'] as int ..allTypeParams = [] // TODO(https://github.com/dart-lang/native/issues/746): include // outerClass in the interop information. diff --git a/pkgs/jnigen/lib/src/elements/elements.dart b/pkgs/jnigen/lib/src/elements/elements.dart index 268d2d04c..73531004a 100644 --- a/pkgs/jnigen/lib/src/elements/elements.dart +++ b/pkgs/jnigen/lib/src/elements/elements.dart @@ -132,12 +132,6 @@ class ClassDecl with ClassMember, Annotated implements Element { String get packageName => (binaryName.split('.')..removeLast()).join('.'); - /// The number of super classes this type has. - /// - /// Populated by [Linker]. - @JsonKey(includeFromJson: false) - late int superCount; - /// Final name of this class. /// /// Populated by [Renamer]. @@ -149,9 +143,6 @@ class ClassDecl with ClassMember, Annotated implements Element { @JsonKey(includeFromJson: false) String get typeClassName => '\$$finalName\$Type\$'; - /// Name of the nullable type class. - String get nullableTypeClassName => '\$$finalName\$NullableType\$'; - /// Type parameters including the ones from its outer classes. /// /// For `Foo.Bar.Baz` it is [T, U, V, W]. @@ -217,7 +208,7 @@ class ClassDecl with ClassMember, Annotated implements Element { .split('.') .last; - bool get isObject => superCount == 0; + bool get isObject => binaryName == DeclaredType.object.binaryName; @JsonKey(includeFromJson: false) bool get isNested => outerClassBinaryName != null; diff --git a/pkgs/jnigen/test/kotlin_test/bindings/kotlin.dart b/pkgs/jnigen/test/kotlin_test/bindings/kotlin.dart index 2a14012ab..03f43f017 100644 --- a/pkgs/jnigen/test/kotlin_test/bindings/kotlin.dart +++ b/pkgs/jnigen/test/kotlin_test/bindings/kotlin.dart @@ -41,17 +41,7 @@ import 'package:jni/_internal.dart' as jni$_; import 'package:jni/jni.dart' as jni$_; /// from: `com.github.dart_lang.jnigen.CanDoA` -class CanDoA extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - CanDoA.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type CanDoA._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/CanDoA'); @@ -154,9 +144,7 @@ class CanDoA extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return CanDoA.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -192,13 +180,6 @@ final class $CanDoA$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/CanDoA;'; - @jni$_.internal - @core$_.override - CanDoA? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : CanDoA.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -229,11 +210,6 @@ final class $CanDoA$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/CanDoA;'; - @jni$_.internal - @core$_.override - CanDoA fromReference(jni$_.JReference reference) => CanDoA.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -256,17 +232,7 @@ final class $CanDoA$Type$ extends jni$_.JType { } /// from: `com.github.dart_lang.jnigen.CanDoB` -class CanDoB extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - CanDoB.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type CanDoB._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/CanDoB'); @@ -369,9 +335,7 @@ class CanDoB extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return CanDoB.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -407,13 +371,6 @@ final class $CanDoB$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/CanDoB;'; - @jni$_.internal - @core$_.override - CanDoB? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : CanDoB.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -444,11 +401,6 @@ final class $CanDoB$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/CanDoB;'; - @jni$_.internal - @core$_.override - CanDoB fromReference(jni$_.JReference reference) => CanDoB.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -471,21 +423,8 @@ final class $CanDoB$Type$ extends jni$_.JType { } /// from: `com.github.dart_lang.jnigen.Measure` -class Measure<$T extends jni$_.JObject> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - Measure.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type Measure<$T extends jni$_.JObject>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/Measure'); @@ -551,7 +490,7 @@ class Measure<$T extends jni$_.JObject> extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. $T getUnit() { return _getUnit(reference.pointer, _id_getUnit as jni$_.JMethodIDPtr) - .object<$T>(T); + .object<$T>(); } static final _id_convertValue = _class.instanceMethodId( @@ -595,14 +534,6 @@ final class $Measure$NullableType$<$T extends jni$_.JObject> @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Measure;'; - @jni$_.internal - @core$_.override - Measure<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Measure<$T>.fromReference( - T, - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -640,13 +571,6 @@ final class $Measure$Type$<$T extends jni$_.JObject> @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Measure;'; - @jni$_.internal - @core$_.override - Measure<$T> fromReference(jni$_.JReference reference) => - Measure<$T>.fromReference( - T, - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -671,17 +595,7 @@ final class $Measure$Type$<$T extends jni$_.JObject> } /// from: `com.github.dart_lang.jnigen.MeasureUnit` -class MeasureUnit extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - MeasureUnit.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type MeasureUnit._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/MeasureUnit'); @@ -712,7 +626,7 @@ class MeasureUnit extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JString getSign() { return _getSign(reference.pointer, _id_getSign as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_getCoefficient = _class.instanceMethodId( @@ -817,9 +731,7 @@ class MeasureUnit extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return MeasureUnit.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -860,13 +772,6 @@ final class $MeasureUnit$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/MeasureUnit;'; - @jni$_.internal - @core$_.override - MeasureUnit? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : MeasureUnit.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -897,12 +802,6 @@ final class $MeasureUnit$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/MeasureUnit;'; - @jni$_.internal - @core$_.override - MeasureUnit fromReference(jni$_.JReference reference) => - MeasureUnit.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -927,30 +826,9 @@ final class $MeasureUnit$Type$ extends jni$_.JType { } /// from: `com.github.dart_lang.jnigen.Nullability$InnerClass` -class Nullability$InnerClass<$T extends jni$_.JObject?, - $U extends jni$_.JObject, $V extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - Nullability$InnerClass.fromReference( - this.T, - this.U, - this.V, - jni$_.JReference reference, - ) : $type = type<$T, $U, $V>(T, U, V), - super.fromReference(reference); - +extension type Nullability$InnerClass<$T extends jni$_.JObject?, + $U extends jni$_.JObject, $V extends jni$_.JObject?>._( + jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/Nullability$InnerClass'); @@ -1004,27 +882,12 @@ class Nullability$InnerClass<$T extends jni$_.JObject?, /// from: `public void (com.github.dart_lang.jnigen.Nullability $outerClass)` /// The returned object must be released after use, by calling the [release] method. factory Nullability$InnerClass( - Nullability<$T?, $U> $outerClass, { - jni$_.JType<$T>? T, - jni$_.JType<$U>? U, - required jni$_.JType<$V> V, - }) { - T ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $Nullability$Type$) - .T, - ]) as jni$_.JType<$T>; - U ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $Nullability$Type$) - .U, - ]) as jni$_.JType<$U>; + Nullability<$T?, $U> $outerClass, + ) { final _$$outerClass = $outerClass.reference; - return Nullability$InnerClass<$T, $U, $V>.fromReference( - T, - U, - V, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$$outerClass.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer) + .object>(); } static final _id_f = _class.instanceMethodId( @@ -1092,18 +955,6 @@ final class $Nullability$InnerClass$NullableType$<$T extends jni$_.JObject?, @jni$_.internal @core$_.override - Nullability$InnerClass<$T, $U, $V>? fromReference( - jni$_.JReference reference) => - reference.isNull - ? null - : Nullability$InnerClass<$T, $U, $V>.fromReference( - T, - U, - V, - reference, - ); - @jni$_.internal - @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @jni$_.internal @@ -1155,16 +1006,6 @@ final class $Nullability$InnerClass$Type$<$T extends jni$_.JObject?, @jni$_.internal @core$_.override - Nullability$InnerClass<$T, $U, $V> fromReference( - jni$_.JReference reference) => - Nullability$InnerClass<$T, $U, $V>.fromReference( - T, - U, - V, - reference, - ); - @jni$_.internal - @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @jni$_.internal @@ -1190,26 +1031,8 @@ final class $Nullability$InnerClass$Type$<$T extends jni$_.JObject?, } /// from: `com.github.dart_lang.jnigen.Nullability` -class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> - extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - Nullability.fromReference( - this.T, - this.U, - jni$_.JReference reference, - ) : $type = type<$T, $U>(T, U), - super.fromReference(reference); - +extension type Nullability<$T extends jni$_.JObject?, + $U extends jni$_.JObject>._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/Nullability'); @@ -1265,22 +1088,14 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> factory Nullability( $T object, $U object1, - $U? object2, { - required jni$_.JType<$T> T, - jni$_.JType<$U>? U, - }) { - U ??= jni$_.lowestCommonSuperType([ - object1.$type, - ]) as jni$_.JType<$U>; + $U? object2, + ) { final _$object = object?.reference ?? jni$_.jNullReference; final _$object1 = object1.reference; final _$object2 = object2?.reference ?? jni$_.jNullReference; - return Nullability<$T, $U>.fromReference( - T, - U, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$object.pointer, _$object1.pointer, _$object2.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$object.pointer, _$object1.pointer, _$object2.pointer) + .object>(); } static final _id_getT = _class.instanceMethodId( @@ -1304,7 +1119,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// The returned object must be released after use, by calling the [release] method. $T getT() { return _getT(reference.pointer, _id_getT as jni$_.JMethodIDPtr) - .object<$T>(T); + .object<$T>(); } static final _id_getU = _class.instanceMethodId( @@ -1328,7 +1143,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// The returned object must be released after use, by calling the [release] method. $U getU() { return _getU(reference.pointer, _id_getU as jni$_.JMethodIDPtr) - .object<$U>(U); + .object<$U>(); } static final _id_getNullableU = _class.instanceMethodId( @@ -1353,7 +1168,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> $U? getNullableU() { return _getNullableU( reference.pointer, _id_getNullableU as jni$_.JMethodIDPtr) - .object<$U?>(U.nullableType); + .object<$U?>(); } static final _id_setNullableU = _class.instanceMethodId( @@ -1403,9 +1218,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// The returned object must be released after use, by calling the [release] method. Nullability self() { return _self(reference.pointer, _id_self as jni$_.JMethodIDPtr) - .object>( - const $Nullability$Type$( - jni$_.$JObject$NullableType$(), jni$_.$JObject$Type$())); + .object>(); } static final _id_hello = _class.instanceMethodId( @@ -1429,7 +1242,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// The returned object must be released after use, by calling the [release] method. jni$_.JString hello() { return _hello(reference.pointer, _id_hello as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_nullableHello = _class.instanceMethodId( @@ -1454,7 +1267,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> ) { return _nullableHello(reference.pointer, _id_nullableHello as jni$_.JMethodIDPtr, z ? 1 : 0) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_list = _class.instanceMethodId( @@ -1478,9 +1291,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// The returned object must be released after use, by calling the [release] method. jni$_.JList list() { return _list(reference.pointer, _id_list as jni$_.JMethodIDPtr) - .object>( - const jni$_.$JList$Type$( - jni$_.$JObject$NullableType$())); + .object>(); } static final _id_methodGenericEcho = _class.instanceMethodId( @@ -1502,16 +1313,12 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodGenericEcho(v: V): V` /// The returned object must be released after use, by calling the [release] method. $V methodGenericEcho<$V extends jni$_.JObject>( - $V object, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - object.$type, - ]) as jni$_.JType<$V>; + $V object, + ) { final _$object = object.reference; return _methodGenericEcho(reference.pointer, _id_methodGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_methodGenericNullableEcho = _class.instanceMethodId( @@ -1533,15 +1340,14 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodGenericNullableEcho(v: V): V` /// The returned object must be released after use, by calling the [release] method. $V methodGenericNullableEcho<$V extends jni$_.JObject?>( - $V object, { - required jni$_.JType<$V> V, - }) { + $V object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _methodGenericNullableEcho( reference.pointer, _id_methodGenericNullableEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_classGenericEcho = _class.instanceMethodId( @@ -1568,7 +1374,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$object = object.reference; return _classGenericEcho(reference.pointer, _id_classGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$U>(U); + .object<$U>(); } static final _id_classGenericNullableEcho = _class.instanceMethodId( @@ -1597,7 +1403,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> reference.pointer, _id_classGenericNullableEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$T>(T); + .object<$T>(); } static final _id_firstOf = _class.instanceMethodId( @@ -1624,7 +1430,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$list = list.reference; return _firstOf(reference.pointer, _id_firstOf as jni$_.JMethodIDPtr, _$list.pointer) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_firstOfNullable = _class.instanceMethodId( @@ -1651,7 +1457,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$list = list.reference; return _firstOfNullable(reference.pointer, _id_firstOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_classGenericFirstOf = _class.instanceMethodId( @@ -1678,7 +1484,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$list = list.reference; return _classGenericFirstOf(reference.pointer, _id_classGenericFirstOf as jni$_.JMethodIDPtr, _$list.pointer) - .object<$U>(U); + .object<$U>(); } static final _id_classGenericFirstOfNullable = _class.instanceMethodId( @@ -1708,7 +1514,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> reference.pointer, _id_classGenericFirstOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object<$T>(T); + .object<$T>(); } static final _id_methodGenericFirstOf = _class.instanceMethodId( @@ -1730,16 +1536,12 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodGenericFirstOf(list: kotlin.collections.List): V` /// The returned object must be released after use, by calling the [release] method. $V methodGenericFirstOf<$V extends jni$_.JObject>( - jni$_.JList<$V> list, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (list.$type as jni$_.$JList$Type$).E, - ]) as jni$_.JType<$V>; + jni$_.JList<$V> list, + ) { final _$list = list.reference; return _methodGenericFirstOf(reference.pointer, _id_methodGenericFirstOf as jni$_.JMethodIDPtr, _$list.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_methodGenericFirstOfNullable = _class.instanceMethodId( @@ -1762,18 +1564,14 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodGenericFirstOfNullable(list: kotlin.collections.List): V` /// The returned object must be released after use, by calling the [release] method. $V methodGenericFirstOfNullable<$V extends jni$_.JObject?>( - jni$_.JList<$V> list, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (list.$type as jni$_.$JList$Type$).E, - ]) as jni$_.JType<$V>; + jni$_.JList<$V> list, + ) { final _$list = list.reference; return _methodGenericFirstOfNullable( reference.pointer, _id_methodGenericFirstOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_stringListOf = _class.instanceMethodId( @@ -1800,8 +1598,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$string = string.reference; return _stringListOf(reference.pointer, _id_stringListOf as jni$_.JMethodIDPtr, _$string.pointer) - .object>( - const jni$_.$JList$Type$(jni$_.$JString$Type$())); + .object>(); } static final _id_nullableListOf = _class.instanceMethodId( @@ -1828,9 +1625,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$string = string?.reference ?? jni$_.jNullReference; return _nullableListOf(reference.pointer, _id_nullableListOf as jni$_.JMethodIDPtr, _$string.pointer) - .object>( - const jni$_.$JList$Type$( - jni$_.$JString$NullableType$())); + .object>(); } static final _id_classGenericListOf = _class.instanceMethodId( @@ -1857,7 +1652,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> final _$object = object.reference; return _classGenericListOf(reference.pointer, _id_classGenericListOf as jni$_.JMethodIDPtr, _$object.pointer) - .object>(jni$_.$JList$Type$<$U>(U)); + .object>(); } static final _id_classGenericNullableListOf = _class.instanceMethodId( @@ -1887,7 +1682,7 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> reference.pointer, _id_classGenericNullableListOf as jni$_.JMethodIDPtr, _$object.pointer) - .object>(jni$_.$JList$Type$<$T>(T)); + .object>(); } static final _id_methodGenericListOf = _class.instanceMethodId( @@ -1909,16 +1704,12 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodGenericListOf(element: V): kotlin.collections.List` /// The returned object must be released after use, by calling the [release] method. jni$_.JList<$V> methodGenericListOf<$V extends jni$_.JObject>( - $V object, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - object.$type, - ]) as jni$_.JType<$V>; + $V object, + ) { final _$object = object.reference; return _methodGenericListOf(reference.pointer, _id_methodGenericListOf as jni$_.JMethodIDPtr, _$object.pointer) - .object>(jni$_.$JList$Type$<$V>(V)); + .object>(); } static final _id_methodGenericNullableListOf = _class.instanceMethodId( @@ -1941,15 +1732,14 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodGenericNullableListOf(element: V): kotlin.collections.List` /// The returned object must be released after use, by calling the [release] method. jni$_.JList<$V> methodGenericNullableListOf<$V extends jni$_.JObject?>( - $V object, { - required jni$_.JType<$V> V, - }) { + $V object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _methodGenericNullableListOf( reference.pointer, _id_methodGenericNullableListOf as jni$_.JMethodIDPtr, _$object.pointer) - .object>(jni$_.$JList$Type$<$V>(V)); + .object>(); } static final _id_methodWithVarArgs = _class.instanceMethodId( @@ -1996,12 +1786,8 @@ class Nullability<$T extends jni$_.JObject?, $U extends jni$_.JObject> /// from: `public fun methodWithWhere(element: V): kotlin.Int where V : com.github.dart_lang.jnigen.CanDoA, V : com.github.dart_lang.jnigen.CanDoB` int methodWithWhere<$V extends jni$_.JObject>( - $V canDoA, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - canDoA.$type, - ]) as jni$_.JType<$V>; + $V canDoA, + ) { final _$canDoA = canDoA.reference; return _methodWithWhere(reference.pointer, _id_methodWithWhere as jni$_.JMethodIDPtr, _$canDoA.pointer) @@ -2027,16 +1813,6 @@ final class $Nullability$NullableType$<$T extends jni$_.JObject?, @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Nullability;'; - @jni$_.internal - @core$_.override - Nullability<$T, $U>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : Nullability<$T, $U>.fromReference( - T, - U, - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -2079,14 +1855,6 @@ final class $Nullability$Type$<$T extends jni$_.JObject?, @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Nullability;'; - @jni$_.internal - @core$_.override - Nullability<$T, $U> fromReference(jni$_.JReference reference) => - Nullability<$T, $U>.fromReference( - T, - U, - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -2113,17 +1881,7 @@ final class $Nullability$Type$<$T extends jni$_.JObject?, } /// from: `com.github.dart_lang.jnigen.Operators` -class Operators extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Operators.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Operators._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/Operators'); @@ -2152,9 +1910,8 @@ class Operators extends jni$_.JObject { factory Operators( int i, ) { - return Operators.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, i) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, i) + .object(); } static final _id_getValue = _class.instanceMethodId( @@ -2226,7 +1983,7 @@ class Operators extends jni$_.JObject { final _$operators = operators.reference; return _plus(reference.pointer, _id_plus as jni$_.JMethodIDPtr, _$operators.pointer) - .object(const $Operators$Type$()); + .object(); } static final _id_plus$1 = _class.instanceMethodId( @@ -2250,7 +2007,7 @@ class Operators extends jni$_.JObject { int i, ) { return _plus$1(reference.pointer, _id_plus$1 as jni$_.JMethodIDPtr, i) - .object(const $Operators$Type$()); + .object(); } static final _id_minus = _class.instanceMethodId( @@ -2277,7 +2034,7 @@ class Operators extends jni$_.JObject { final _$operators = operators.reference; return _minus(reference.pointer, _id_minus as jni$_.JMethodIDPtr, _$operators.pointer) - .object(const $Operators$Type$()); + .object(); } static final _id_times = _class.instanceMethodId( @@ -2304,7 +2061,7 @@ class Operators extends jni$_.JObject { final _$operators = operators.reference; return _times(reference.pointer, _id_times as jni$_.JMethodIDPtr, _$operators.pointer) - .object(const $Operators$Type$()); + .object(); } static final _id_div = _class.instanceMethodId( @@ -2331,7 +2088,7 @@ class Operators extends jni$_.JObject { final _$operators = operators.reference; return _div(reference.pointer, _id_div as jni$_.JMethodIDPtr, _$operators.pointer) - .object(const $Operators$Type$()); + .object(); } static final _id_rem = _class.instanceMethodId( @@ -2358,7 +2115,7 @@ class Operators extends jni$_.JObject { final _$operators = operators.reference; return _rem(reference.pointer, _id_rem as jni$_.JMethodIDPtr, _$operators.pointer) - .object(const $Operators$Type$()); + .object(); } static final _id_get = _class.instanceMethodId( @@ -2488,13 +2245,6 @@ final class $Operators$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Operators;'; - @jni$_.internal - @core$_.override - Operators? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Operators.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -2525,12 +2275,6 @@ final class $Operators$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Operators;'; - @jni$_.internal - @core$_.override - Operators fromReference(jni$_.JReference reference) => - Operators.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -2553,17 +2297,7 @@ final class $Operators$Type$ extends jni$_.JType { } /// from: `com.github.dart_lang.jnigen.Speed` -class Speed extends Measure { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Speed.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(const $SpeedUnit$Type$(), reference); - +extension type Speed._(jni$_.JObject _$this) implements Measure { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/Speed'); @@ -2597,9 +2331,9 @@ class Speed extends Measure { SpeedUnit speedUnit, ) { final _$speedUnit = speedUnit.reference; - return Speed.fromReference(_new$(_class.reference.pointer, - _id_new$ as jni$_.JMethodIDPtr, f, _$speedUnit.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, f, + _$speedUnit.pointer) + .object(); } static final _id_getValue = _class.instanceMethodId( @@ -2646,7 +2380,7 @@ class Speed extends Measure { /// The returned object must be released after use, by calling the [release] method. SpeedUnit getUnit$1() { return _getUnit$1(reference.pointer, _id_getUnit$1 as jni$_.JMethodIDPtr) - .object(const $SpeedUnit$Type$()); + .object(); } static final _id_toString$1 = _class.instanceMethodId( @@ -2670,7 +2404,7 @@ class Speed extends Measure { /// The returned object must be released after use, by calling the [release] method. jni$_.JString toString$1() { return _toString$1(reference.pointer, _id_toString$1 as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_component1 = _class.instanceMethodId( @@ -2717,7 +2451,7 @@ class Speed extends Measure { /// The returned object must be released after use, by calling the [release] method. SpeedUnit component2() { return _component2(reference.pointer, _id_component2 as jni$_.JMethodIDPtr) - .object(const $SpeedUnit$Type$()); + .object(); } static final _id_copy = _class.instanceMethodId( @@ -2748,7 +2482,7 @@ class Speed extends Measure { final _$speedUnit = speedUnit.reference; return _copy(reference.pointer, _id_copy as jni$_.JMethodIDPtr, f, _$speedUnit.pointer) - .object(const $Speed$Type$()); + .object(); } static final _id_hashCode$1 = _class.instanceMethodId( @@ -2809,13 +2543,6 @@ final class $Speed$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Speed;'; - @jni$_.internal - @core$_.override - Speed? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Speed.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => @@ -2847,11 +2574,6 @@ final class $Speed$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/Speed;'; - @jni$_.internal - @core$_.override - Speed fromReference(jni$_.JReference reference) => Speed.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => @@ -2875,17 +2597,7 @@ final class $Speed$Type$ extends jni$_.JType { } /// from: `com.github.dart_lang.jnigen.SpeedUnit` -class SpeedUnit extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - SpeedUnit.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type SpeedUnit._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/SpeedUnit'); @@ -2903,7 +2615,7 @@ class SpeedUnit extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.SpeedUnit KmPerHour` /// The returned object must be released after use, by calling the [release] method. static SpeedUnit get KmPerHour => - _id_KmPerHour.get(_class, const $SpeedUnit$Type$()); + _id_KmPerHour.get(_class, const jni$_.$JObject$NullableType$()); static final _id_MetrePerSec = _class.staticFieldId( r'MetrePerSec', @@ -2913,7 +2625,7 @@ class SpeedUnit extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.SpeedUnit MetrePerSec` /// The returned object must be released after use, by calling the [release] method. static SpeedUnit get MetrePerSec => - _id_MetrePerSec.get(_class, const $SpeedUnit$Type$()); + _id_MetrePerSec.get(_class, const jni$_.$JObject$NullableType$()); static final _id_getSign = _class.instanceMethodId( r'getSign', @@ -2936,7 +2648,7 @@ class SpeedUnit extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JString getSign() { return _getSign(reference.pointer, _id_getSign as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_getCoefficient = _class.instanceMethodId( @@ -2984,9 +2696,7 @@ class SpeedUnit extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static jni$_.JArray? values() { return _values(_class.reference.pointer, _id_values as jni$_.JMethodIDPtr) - .object?>( - const jni$_.$JArray$NullableType$( - $SpeedUnit$NullableType$())); + .object?>(); } static final _id_valueOf = _class.staticMethodId( @@ -3013,7 +2723,7 @@ class SpeedUnit extends jni$_.JObject { final _$string = string?.reference ?? jni$_.jNullReference; return _valueOf(_class.reference.pointer, _id_valueOf as jni$_.JMethodIDPtr, _$string.pointer) - .object(const $SpeedUnit$NullableType$()); + .object(); } } @@ -3025,13 +2735,6 @@ final class $SpeedUnit$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/SpeedUnit;'; - @jni$_.internal - @core$_.override - SpeedUnit? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : SpeedUnit.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -3062,12 +2765,6 @@ final class $SpeedUnit$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/SpeedUnit;'; - @jni$_.internal - @core$_.override - SpeedUnit fromReference(jni$_.JReference reference) => - SpeedUnit.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -3090,17 +2787,7 @@ final class $SpeedUnit$Type$ extends jni$_.JType { } /// from: `com.github.dart_lang.jnigen.SuspendFun` -class SuspendFun extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - SuspendFun.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type SuspendFun._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/SuspendFun'); @@ -3129,9 +2816,8 @@ class SuspendFun extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory SuspendFun() { - return SuspendFun.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } static final _id_sayHelloWithoutDelay = _class.instanceMethodId( @@ -3160,7 +2846,7 @@ class SuspendFun extends jni$_.JObject { reference.pointer, _id_sayHelloWithoutDelay as jni$_.JMethodIDPtr, _$continuation.pointer) - .object(const jni$_.$JObject$Type$()); + .object(); _$continuation.release(); final jni$_.JObject $o; if ($r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3207,7 +2893,7 @@ class SuspendFun extends jni$_.JObject { final $r = _failWithoutDelay(reference.pointer, _id_failWithoutDelay as jni$_.JMethodIDPtr, _$continuation.pointer) - .object(const jni$_.$JObject$Type$()); + .object(); _$continuation.release(); final jni$_.JObject $o; if ($r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3254,7 +2940,7 @@ class SuspendFun extends jni$_.JObject { final $r = _fail(reference.pointer, _id_fail as jni$_.JMethodIDPtr, _$continuation.pointer) - .object(const jni$_.$JObject$Type$()); + .object(); _$continuation.release(); final jni$_.JObject $o; if ($r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3301,7 +2987,7 @@ class SuspendFun extends jni$_.JObject { final $r = _sayHello(reference.pointer, _id_sayHello as jni$_.JMethodIDPtr, _$continuation.pointer) - .object(const jni$_.$JObject$Type$()); + .object(); _$continuation.release(); final jni$_.JObject $o; if ($r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3359,7 +3045,7 @@ class SuspendFun extends jni$_.JObject { _id_sayHello$1 as jni$_.JMethodIDPtr, _$string.pointer, _$continuation.pointer) - .object(const jni$_.$JObject$Type$()); + .object(); _$continuation.release(); final jni$_.JObject $o; if ($r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3412,7 +3098,7 @@ class SuspendFun extends jni$_.JObject { _id_nullableHello as jni$_.JMethodIDPtr, z ? 1 : 0, _$continuation.pointer) - .object(const jni$_.$JObject$NullableType$()); + .object(); _$continuation.release(); final jni$_.JObject? $o; if ($r != null && $r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3467,7 +3153,7 @@ class SuspendFun extends jni$_.JObject { _id_nullableHelloWithoutDelay as jni$_.JMethodIDPtr, z ? 1 : 0, _$continuation.pointer) - .object(const jni$_.$JObject$NullableType$()); + .object(); _$continuation.release(); final jni$_.JObject? $o; if ($r != null && $r.isInstanceOf(jni$_.coroutineSingletonsClass)) { @@ -3501,13 +3187,6 @@ final class $SuspendFun$NullableType$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/SuspendFun;'; - @jni$_.internal - @core$_.override - SuspendFun? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : SuspendFun.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); @@ -3538,12 +3217,6 @@ final class $SuspendFun$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/SuspendFun;'; - @jni$_.internal - @core$_.override - SuspendFun fromReference(jni$_.JReference reference) => - SuspendFun.fromReference( - reference, - ); @jni$_.internal @core$_.override jni$_.JType get superType => const jni$_.$JObject$Type$(); diff --git a/pkgs/jnigen/test/kotlin_test/runtime_test_registrant.dart b/pkgs/jnigen/test/kotlin_test/runtime_test_registrant.dart index 4e41f1a54..3608f0a6c 100644 --- a/pkgs/jnigen/test/kotlin_test/runtime_test_registrant.dart +++ b/pkgs/jnigen/test/kotlin_test/runtime_test_registrant.dart @@ -145,8 +145,6 @@ void registerTests(String groupName, TestRunnerCallback test) { null, 'hello'.toJString(), null, - T: JString.nullableType, - U: JString.type, )..releasedBy(arena); } @@ -211,7 +209,6 @@ void registerTests(String groupName, TestRunnerCallback test) { obj .methodGenericEcho( 'hello'.toJString()..releasedBy(arena), - V: JString.type, ) .toDartString(releaseOriginal: true), 'hello', @@ -220,13 +217,12 @@ void registerTests(String groupName, TestRunnerCallback test) { obj .methodGenericNullableEcho( 'hello'.toJString()..releasedBy(arena), - V: JString.nullableType, - )! + ) .toDartString(releaseOriginal: true), 'hello', ); expect( - obj.methodGenericNullableEcho(null, V: JString.nullableType), + obj.methodGenericNullableEcho(null), null, ); expect( @@ -264,15 +260,14 @@ void registerTests(String groupName, TestRunnerCallback test) { ); expect( obj - .methodGenericNullableListOf( + .methodGenericNullableListOf( 'hello'.toJString()..releasedBy(arena), - V: JString.nullableType, )[0]! .toDartString(releaseOriginal: true), 'hello', ); expect( - obj.methodGenericNullableListOf(null, V: JString.nullableType)[0], + obj.methodGenericNullableListOf(null)[0], null, ); expect( diff --git a/pkgs/jnigen/test/simple_package_test/bindings/simple_package.dart b/pkgs/jnigen/test/simple_package_test/bindings/simple_package.dart index e41c17920..2ec3b6884 100644 --- a/pkgs/jnigen/test/simple_package_test/bindings/simple_package.dart +++ b/pkgs/jnigen/test/simple_package_test/bindings/simple_package.dart @@ -41,24 +41,11 @@ import 'package:jni/_internal.dart' as jni$_; import 'package:jni/jni.dart' as jni$_; /// from: `com.github.dart_lang.jnigen.simple_package.Example$Nested$NestedTwice` -class Example$Nested$NestedTwice extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Example$Nested$NestedTwice.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Example$Nested$NestedTwice._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Example$Nested$NestedTwice'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Example$Nested$NestedTwice$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Example$Nested$NestedTwice$Type$(); @@ -68,11 +55,10 @@ class Example$Nested$NestedTwice extends jni$_.JObject { ); /// from: `static public int ZERO` - static int get ZERO => _id_ZERO.get(_class, const jni$_.jintType()); + static int get ZERO => _id_ZERO.get(_class, jni$_.jint.type); /// from: `static public int ZERO` - static set ZERO(int value) => - _id_ZERO.set(_class, const jni$_.jintType(), value); + static set ZERO(int value) => _id_ZERO.set(_class, jni$_.jint.type, value); static final _id_new$ = _class.constructorId( r'()V', @@ -93,49 +79,8 @@ class Example$Nested$NestedTwice extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory Example$Nested$NestedTwice() { - return Example$Nested$NestedTwice.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $Example$Nested$NestedTwice$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $Example$Nested$NestedTwice$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Example$Nested$NestedTwice;'; - - @jni$_.internal - @core$_.override - Example$Nested$NestedTwice? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : Example$Nested$NestedTwice.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$Nested$NestedTwice$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$Nested$NestedTwice$NullableType$) && - other is $Example$Nested$NestedTwice$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -148,55 +93,13 @@ final class $Example$Nested$NestedTwice$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Example$Nested$NestedTwice;'; - - @jni$_.internal - @core$_.override - Example$Nested$NestedTwice fromReference(jni$_.JReference reference) => - Example$Nested$NestedTwice.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $Example$Nested$NestedTwice$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$Nested$NestedTwice$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$Nested$NestedTwice$Type$) && - other is $Example$Nested$NestedTwice$Type$; - } } /// from: `com.github.dart_lang.jnigen.simple_package.Example$Nested` -class Example$Nested extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Example$Nested.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Example$Nested._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Example$Nested'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Example$Nested$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Example$Nested$Type$(); static final _id_new$ = _class.constructorId( @@ -218,9 +121,9 @@ class Example$Nested extends jni$_.JObject { factory Example$Nested( bool z, ) { - return Example$Nested.fromReference(_new$( + return _new$( _class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, z ? 1 : 0) - .reference); + .object(); } static final _id_usesAnonymousInnerClass = _class.instanceMethodId( @@ -294,44 +197,6 @@ class Example$Nested extends jni$_.JObject { } } -final class $Example$Nested$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Example$Nested$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Example$Nested;'; - - @jni$_.internal - @core$_.override - Example$Nested? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Example$Nested.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$Nested$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$Nested$NullableType$) && - other is $Example$Nested$NullableType$; - } -} - final class $Example$Nested$Type$ extends jni$_.JType { @jni$_.internal const $Example$Nested$Type$(); @@ -340,55 +205,14 @@ final class $Example$Nested$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Example$Nested;'; - - @jni$_.internal - @core$_.override - Example$Nested fromReference(jni$_.JReference reference) => - Example$Nested.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $Example$Nested$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$Nested$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$Nested$Type$) && - other is $Example$Nested$Type$; - } } /// from: `com.github.dart_lang.jnigen.simple_package.Example$NonStaticNested` -class Example$NonStaticNested extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Example$NonStaticNested.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Example$NonStaticNested._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Example$NonStaticNested'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Example$NonStaticNested$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Example$NonStaticNested$Type$(); @@ -398,10 +222,10 @@ class Example$NonStaticNested extends jni$_.JObject { ); /// from: `public boolean ok` - bool get ok => _id_ok.get(this, const jni$_.jbooleanType()); + bool get ok => _id_ok.get(this, jni$_.jboolean.type); /// from: `public boolean ok` - set ok(bool value) => _id_ok.set(this, const jni$_.jbooleanType(), value); + set ok(bool value) => _id_ok.set(this, jni$_.jboolean.type, value); static final _id_new$ = _class.constructorId( r'(Lcom/github/dart_lang/jnigen/simple_package/Example;)V', @@ -424,49 +248,9 @@ class Example$NonStaticNested extends jni$_.JObject { Example $outerClass, ) { final _$$outerClass = $outerClass.reference; - return Example$NonStaticNested.fromReference(_new$(_class.reference.pointer, - _id_new$ as jni$_.JMethodIDPtr, _$$outerClass.pointer) - .reference); - } -} - -final class $Example$NonStaticNested$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $Example$NonStaticNested$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Example$NonStaticNested;'; - - @jni$_.internal - @core$_.override - Example$NonStaticNested? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : Example$NonStaticNested.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$NonStaticNested$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$NonStaticNested$NullableType$) && - other is $Example$NonStaticNested$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer) + .object(); } } @@ -479,54 +263,13 @@ final class $Example$NonStaticNested$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Example$NonStaticNested;'; - - @jni$_.internal - @core$_.override - Example$NonStaticNested fromReference(jni$_.JReference reference) => - Example$NonStaticNested.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $Example$NonStaticNested$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$NonStaticNested$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$NonStaticNested$Type$) && - other is $Example$NonStaticNested$Type$; - } } /// from: `com.github.dart_lang.jnigen.simple_package.Example` -class Example extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Example.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Example._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Example'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = $Example$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Example$Type$(); @@ -549,7 +292,7 @@ class Example extends jni$_.JObject { /// from: `static public final java.lang.String SEMICOLON_STRING` /// The returned object must be released after use, by calling the [release] method. static jni$_.JString? get SEMICOLON_STRING => - _id_SEMICOLON_STRING.get(_class, const jni$_.$JString$NullableType$()); + _id_SEMICOLON_STRING.get(_class, const jni$_.$JObject$NullableType$()); static final _id_unusedRandom = _class.staticFieldId( r'unusedRandom', @@ -653,7 +396,7 @@ class Example extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static jni$_.JString? getName() { return _getName(_class.reference.pointer, _id_getName as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_getNestedInstance = _class.staticMethodId( @@ -678,7 +421,7 @@ class Example extends jni$_.JObject { static Example$Nested? getNestedInstance() { return _getNestedInstance(_class.reference.pointer, _id_getNestedInstance as jni$_.JMethodIDPtr) - .object(const $Example$Nested$NullableType$()); + .object(); } static final _id_setAmount = _class.staticMethodId( @@ -943,7 +686,7 @@ class Example extends jni$_.JObject { jni$_.JString? getCodename() { return _getCodename( reference.pointer, _id_getCodename as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_setCodename = _class.instanceMethodId( @@ -993,7 +736,7 @@ class Example extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JObject? getRandom() { return _getRandom(reference.pointer, _id_getRandom as jni$_.JMethodIDPtr) - .object(const jni$_.$JObject$NullableType$()); + .object(); } static final _id_setRandom = _class.instanceMethodId( @@ -1144,7 +887,7 @@ class Example extends jni$_.JObject { final _$random = random?.reference ?? jni$_.jNullReference; return _getRandomNumericString(reference.pointer, _id_getRandomNumericString as jni$_.JMethodIDPtr, _$random.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_finalMethod = _class.instanceMethodId( @@ -1191,9 +934,7 @@ class Example extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JList? getList() { return _getList(reference.pointer, _id_getList as jni$_.JMethodIDPtr) - .object?>( - const jni$_.$JList$NullableType$( - jni$_.$JString$NullableType$())); + .object?>(); } static final _id_joinStrings = _class.instanceMethodId( @@ -1231,7 +972,7 @@ class Example extends jni$_.JObject { _id_joinStrings as jni$_.JMethodIDPtr, _$list.pointer, _$string.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_methodWithSeveralParams = _class.instanceMethodId( @@ -1271,9 +1012,8 @@ class Example extends jni$_.JObject { jni$_.JIntArray? is$, $T? charSequence, jni$_.JList<$T?>? list, - jni$_.JMap? map, { - required jni$_.JType<$T> T, - }) { + jni$_.JMap? map, + ) { final _$string = string?.reference ?? jni$_.jNullReference; final _$is$ = is$?.reference ?? jni$_.jNullReference; final _$charSequence = charSequence?.reference ?? jni$_.jNullReference; @@ -1310,9 +1050,8 @@ class Example extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory Example() { - return Example.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } static final _id_new$1 = _class.constructorId( @@ -1334,9 +1073,8 @@ class Example extends jni$_.JObject { factory Example.new$1( int i, ) { - return Example.fromReference( - _new$1(_class.reference.pointer, _id_new$1 as jni$_.JMethodIDPtr, i) - .reference); + return _new$1(_class.reference.pointer, _id_new$1 as jni$_.JMethodIDPtr, i) + .object(); } static final _id_new$2 = _class.constructorId( @@ -1360,9 +1098,9 @@ class Example extends jni$_.JObject { int i, bool z, ) { - return Example.fromReference(_new$2(_class.reference.pointer, - _id_new$2 as jni$_.JMethodIDPtr, i, z ? 1 : 0) - .reference); + return _new$2(_class.reference.pointer, _id_new$2 as jni$_.JMethodIDPtr, i, + z ? 1 : 0) + .object(); } static final _id_new$3 = _class.constructorId( @@ -1392,9 +1130,9 @@ class Example extends jni$_.JObject { jni$_.JString? string, ) { final _$string = string?.reference ?? jni$_.jNullReference; - return Example.fromReference(_new$3(_class.reference.pointer, - _id_new$3 as jni$_.JMethodIDPtr, i, z ? 1 : 0, _$string.pointer) - .reference); + return _new$3(_class.reference.pointer, _id_new$3 as jni$_.JMethodIDPtr, i, + z ? 1 : 0, _$string.pointer) + .object(); } static final _id_new$4 = _class.constructorId( @@ -1433,9 +1171,9 @@ class Example extends jni$_.JObject { int i6, int i7, ) { - return Example.fromReference(_new$4(_class.reference.pointer, - _id_new$4 as jni$_.JMethodIDPtr, i, i1, i2, i3, i4, i5, i6, i7) - .reference); + return _new$4(_class.reference.pointer, _id_new$4 as jni$_.JMethodIDPtr, i, + i1, i2, i3, i4, i5, i6, i7) + .object(); } static final _id_whichExample = _class.instanceMethodId( @@ -1509,7 +1247,7 @@ class Example extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static jni$_.JIntArray? getArr() { return _getArr(_class.reference.pointer, _id_getArr as jni$_.JMethodIDPtr) - .object(const jni$_.$JIntArray$NullableType$()); + .object(); } static final _id_addAll = _class.staticMethodId( @@ -1559,7 +1297,7 @@ class Example extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. Example? getSelf() { return _getSelf(reference.pointer, _id_getSelf as jni$_.JMethodIDPtr) - .object(const $Example$NullableType$()); + .object(); } static final _id_throwException = _class.staticMethodId( @@ -1721,44 +1459,6 @@ class Example extends jni$_.JObject { } } -final class $Example$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Example$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Example;'; - - @jni$_.internal - @core$_.override - Example? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Example.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$NullableType$) && - other is $Example$NullableType$; - } -} - final class $Example$Type$ extends jni$_.JType { @jni$_.internal const $Example$Type$(); @@ -1767,52 +1467,13 @@ final class $Example$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Example;'; - - @jni$_.internal - @core$_.override - Example fromReference(jni$_.JReference reference) => Example.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $Example$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$Type$) && other is $Example$Type$; - } } /// from: `com.github.dart_lang.jnigen.simple_package.Exceptions` -class Exceptions extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Exceptions.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Exceptions._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Exceptions'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Exceptions$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Exceptions$Type$(); static final _id_new$ = _class.constructorId( @@ -1834,9 +1495,8 @@ class Exceptions extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory Exceptions() { - return Exceptions.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } static final _id_new$1 = _class.constructorId( @@ -1858,9 +1518,8 @@ class Exceptions extends jni$_.JObject { factory Exceptions.new$1( double f, ) { - return Exceptions.fromReference( - _new$1(_class.reference.pointer, _id_new$1 as jni$_.JMethodIDPtr, f) - .reference); + return _new$1(_class.reference.pointer, _id_new$1 as jni$_.JMethodIDPtr, f) + .object(); } static final _id_new$2 = _class.constructorId( @@ -1895,9 +1554,9 @@ class Exceptions extends jni$_.JObject { int i4, int i5, ) { - return Exceptions.fromReference(_new$2(_class.reference.pointer, - _id_new$2 as jni$_.JMethodIDPtr, i, i1, i2, i3, i4, i5) - .reference); + return _new$2(_class.reference.pointer, _id_new$2 as jni$_.JMethodIDPtr, i, + i1, i2, i3, i4, i5) + .object(); } static final _id_staticObjectMethod = _class.staticMethodId( @@ -1922,7 +1581,7 @@ class Exceptions extends jni$_.JObject { static jni$_.JObject? staticObjectMethod() { return _staticObjectMethod(_class.reference.pointer, _id_staticObjectMethod as jni$_.JMethodIDPtr) - .object(const jni$_.$JObject$NullableType$()); + .object(); } static final _id_staticIntMethod = _class.staticMethodId( @@ -1971,9 +1630,7 @@ class Exceptions extends jni$_.JObject { static jni$_.JArray? staticObjectArrayMethod() { return _staticObjectArrayMethod(_class.reference.pointer, _id_staticObjectArrayMethod as jni$_.JMethodIDPtr) - .object?>( - const jni$_.$JArray$NullableType$( - jni$_.$JObject$NullableType$())); + .object?>(); } static final _id_staticIntArrayMethod = _class.staticMethodId( @@ -1998,7 +1655,7 @@ class Exceptions extends jni$_.JObject { static jni$_.JIntArray? staticIntArrayMethod() { return _staticIntArrayMethod(_class.reference.pointer, _id_staticIntArrayMethod as jni$_.JMethodIDPtr) - .object(const jni$_.$JIntArray$NullableType$()); + .object(); } static final _id_objectMethod = _class.instanceMethodId( @@ -2023,7 +1680,7 @@ class Exceptions extends jni$_.JObject { jni$_.JObject? objectMethod() { return _objectMethod( reference.pointer, _id_objectMethod as jni$_.JMethodIDPtr) - .object(const jni$_.$JObject$NullableType$()); + .object(); } static final _id_intMethod = _class.instanceMethodId( @@ -2071,9 +1728,7 @@ class Exceptions extends jni$_.JObject { jni$_.JArray? objectArrayMethod() { return _objectArrayMethod( reference.pointer, _id_objectArrayMethod as jni$_.JMethodIDPtr) - .object?>( - const jni$_.$JArray$NullableType$( - jni$_.$JObject$NullableType$())); + .object?>(); } static final _id_intArrayMethod = _class.instanceMethodId( @@ -2098,7 +1753,7 @@ class Exceptions extends jni$_.JObject { jni$_.JIntArray? intArrayMethod() { return _intArrayMethod( reference.pointer, _id_intArrayMethod as jni$_.JMethodIDPtr) - .object(const jni$_.$JIntArray$NullableType$()); + .object(); } static final _id_throwNullPointerException = _class.instanceMethodId( @@ -2148,7 +1803,7 @@ class Exceptions extends jni$_.JObject { jni$_.JObject? throwFileNotFoundException() { return _throwFileNotFoundException(reference.pointer, _id_throwFileNotFoundException as jni$_.JMethodIDPtr) - .object(const jni$_.$JObject$NullableType$()); + .object(); } static final _id_throwClassCastException = _class.instanceMethodId( @@ -2173,7 +1828,7 @@ class Exceptions extends jni$_.JObject { jni$_.JObject? throwClassCastException() { return _throwClassCastException(reference.pointer, _id_throwClassCastException as jni$_.JMethodIDPtr) - .object(const jni$_.$JObject$NullableType$()); + .object(); } static final _id_throwArrayIndexException = _class.instanceMethodId( @@ -2249,44 +1904,6 @@ class Exceptions extends jni$_.JObject { } } -final class $Exceptions$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Exceptions$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Exceptions;'; - - @jni$_.internal - @core$_.override - Exceptions? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Exceptions.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Exceptions$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Exceptions$NullableType$) && - other is $Exceptions$NullableType$; - } -} - final class $Exceptions$Type$ extends jni$_.JType { @jni$_.internal const $Exceptions$Type$(); @@ -2295,55 +1912,13 @@ final class $Exceptions$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Exceptions;'; - - @jni$_.internal - @core$_.override - Exceptions fromReference(jni$_.JReference reference) => - Exceptions.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $Exceptions$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Exceptions$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Exceptions$Type$) && - other is $Exceptions$Type$; - } } /// from: `com.github.dart_lang.jnigen.simple_package.Fields$Nested` -class Fields$Nested extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Fields$Nested.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Fields$Nested._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Fields$Nested'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Fields$Nested$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Fields$Nested$Type$(); static final _id_hundred = _class.instanceFieldId( @@ -2352,11 +1927,10 @@ class Fields$Nested extends jni$_.JObject { ); /// from: `public long hundred` - int get hundred => _id_hundred.get(this, const jni$_.jlongType()); + int get hundred => _id_hundred.get(this, jni$_.jlong.type); /// from: `public long hundred` - set hundred(int value) => - _id_hundred.set(this, const jni$_.jlongType(), value); + set hundred(int value) => _id_hundred.set(this, jni$_.jlong.type, value); static final _id_BEST_GOD = _class.staticFieldId( r'BEST_GOD', @@ -2366,12 +1940,12 @@ class Fields$Nested extends jni$_.JObject { /// from: `static public java.lang.String BEST_GOD` /// The returned object must be released after use, by calling the [release] method. static jni$_.JString? get BEST_GOD => - _id_BEST_GOD.get(_class, const jni$_.$JString$NullableType$()); + _id_BEST_GOD.get(_class, const jni$_.$JObject$NullableType$()); /// from: `static public java.lang.String BEST_GOD` /// The returned object must be released after use, by calling the [release] method. static set BEST_GOD(jni$_.JString? value) => - _id_BEST_GOD.set(_class, const jni$_.$JString$NullableType$(), value); + _id_BEST_GOD.set(_class, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'()V', @@ -2392,106 +1966,26 @@ class Fields$Nested extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory Fields$Nested() { - return Fields$Nested.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } -final class $Fields$Nested$NullableType$ extends jni$_.JType { +final class $Fields$Nested$Type$ extends jni$_.JType { @jni$_.internal - const $Fields$Nested$NullableType$(); + const $Fields$Nested$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Fields$Nested;'; - - @jni$_.internal - @core$_.override - Fields$Nested? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Fields$Nested.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Fields$Nested$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Fields$Nested$NullableType$) && - other is $Fields$Nested$NullableType$; - } -} - -final class $Fields$Nested$Type$ extends jni$_.JType { - @jni$_.internal - const $Fields$Nested$Type$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Fields$Nested;'; - - @jni$_.internal - @core$_.override - Fields$Nested fromReference(jni$_.JReference reference) => - Fields$Nested.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $Fields$Nested$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Fields$Nested$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Fields$Nested$Type$) && - other is $Fields$Nested$Type$; - } -} +} /// from: `com.github.dart_lang.jnigen.simple_package.Fields` -class Fields extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Fields.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Fields._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/simple_package/Fields'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = $Fields$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Fields$Type$(); static final _id_amount = _class.staticFieldId( @@ -2500,11 +1994,11 @@ class Fields extends jni$_.JObject { ); /// from: `static public int amount` - static int get amount => _id_amount.get(_class, const jni$_.jintType()); + static int get amount => _id_amount.get(_class, jni$_.jint.type); /// from: `static public int amount` static set amount(int value) => - _id_amount.set(_class, const jni$_.jintType(), value); + _id_amount.set(_class, jni$_.jint.type, value); static final _id_pi = _class.staticFieldId( r'pi', @@ -2512,11 +2006,10 @@ class Fields extends jni$_.JObject { ); /// from: `static public double pi` - static double get pi => _id_pi.get(_class, const jni$_.jdoubleType()); + static double get pi => _id_pi.get(_class, jni$_.jdouble.type); /// from: `static public double pi` - static set pi(double value) => - _id_pi.set(_class, const jni$_.jdoubleType(), value); + static set pi(double value) => _id_pi.set(_class, jni$_.jdouble.type, value); static final _id_asterisk = _class.staticFieldId( r'asterisk', @@ -2524,11 +2017,11 @@ class Fields extends jni$_.JObject { ); /// from: `static public char asterisk` - static int get asterisk => _id_asterisk.get(_class, const jni$_.jcharType()); + static int get asterisk => _id_asterisk.get(_class, jni$_.jchar.type); /// from: `static public char asterisk` static set asterisk(int value) => - _id_asterisk.set(_class, const jni$_.jcharType(), value); + _id_asterisk.set(_class, jni$_.jchar.type, value); static final _id_name = _class.staticFieldId( r'name', @@ -2538,12 +2031,12 @@ class Fields extends jni$_.JObject { /// from: `static public java.lang.String name` /// The returned object must be released after use, by calling the [release] method. static jni$_.JString? get name => - _id_name.get(_class, const jni$_.$JString$NullableType$()); + _id_name.get(_class, const jni$_.$JObject$NullableType$()); /// from: `static public java.lang.String name` /// The returned object must be released after use, by calling the [release] method. static set name(jni$_.JString? value) => - _id_name.set(_class, const jni$_.$JString$NullableType$(), value); + _id_name.set(_class, const jni$_.$JObject$NullableType$(), value); static final _id_i = _class.instanceFieldId( r'i', @@ -2553,12 +2046,12 @@ class Fields extends jni$_.JObject { /// from: `public java.lang.Integer i` /// The returned object must be released after use, by calling the [release] method. jni$_.JInteger? get i => - _id_i.get(this, const jni$_.$JInteger$NullableType$()); + _id_i.get(this, const jni$_.$JObject$NullableType$()); /// from: `public java.lang.Integer i` /// The returned object must be released after use, by calling the [release] method. set i(jni$_.JInteger? value) => - _id_i.set(this, const jni$_.$JInteger$NullableType$(), value); + _id_i.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_trillion = _class.instanceFieldId( r'trillion', @@ -2566,11 +2059,10 @@ class Fields extends jni$_.JObject { ); /// from: `public long trillion` - int get trillion => _id_trillion.get(this, const jni$_.jlongType()); + int get trillion => _id_trillion.get(this, jni$_.jlong.type); /// from: `public long trillion` - set trillion(int value) => - _id_trillion.set(this, const jni$_.jlongType(), value); + set trillion(int value) => _id_trillion.set(this, jni$_.jlong.type, value); static final _id_isAchillesDead = _class.instanceFieldId( r'isAchillesDead', @@ -2578,12 +2070,11 @@ class Fields extends jni$_.JObject { ); /// from: `public boolean isAchillesDead` - bool get isAchillesDead => - _id_isAchillesDead.get(this, const jni$_.jbooleanType()); + bool get isAchillesDead => _id_isAchillesDead.get(this, jni$_.jboolean.type); /// from: `public boolean isAchillesDead` set isAchillesDead(bool value) => - _id_isAchillesDead.set(this, const jni$_.jbooleanType(), value); + _id_isAchillesDead.set(this, jni$_.jboolean.type, value); static final _id_bestFighterInGreece = _class.instanceFieldId( r'bestFighterInGreece', @@ -2593,12 +2084,12 @@ class Fields extends jni$_.JObject { /// from: `public java.lang.String bestFighterInGreece` /// The returned object must be released after use, by calling the [release] method. jni$_.JString? get bestFighterInGreece => - _id_bestFighterInGreece.get(this, const jni$_.$JString$NullableType$()); + _id_bestFighterInGreece.get(this, const jni$_.$JObject$NullableType$()); /// from: `public java.lang.String bestFighterInGreece` /// The returned object must be released after use, by calling the [release] method. set bestFighterInGreece(jni$_.JString? value) => _id_bestFighterInGreece.set( - this, const jni$_.$JString$NullableType$(), value); + this, const jni$_.$JObject$NullableType$(), value); static final _id_random = _class.instanceFieldId( r'random', @@ -2621,12 +2112,11 @@ class Fields extends jni$_.JObject { ); /// from: `static public char euroSymbol` - static int get euroSymbol => - _id_euroSymbol.get(_class, const jni$_.jcharType()); + static int get euroSymbol => _id_euroSymbol.get(_class, jni$_.jchar.type); /// from: `static public char euroSymbol` static set euroSymbol(int value) => - _id_euroSymbol.set(_class, const jni$_.jcharType(), value); + _id_euroSymbol.set(_class, jni$_.jchar.type, value); static final _id_new$ = _class.constructorId( r'()V', @@ -2647,47 +2137,8 @@ class Fields extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory Fields() { - return Fields.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $Fields$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Fields$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/simple_package/Fields;'; - - @jni$_.internal - @core$_.override - Fields? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Fields.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Fields$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Fields$NullableType$) && - other is $Fields$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -2699,51 +2150,13 @@ final class $Fields$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/simple_package/Fields;'; - - @jni$_.internal - @core$_.override - Fields fromReference(jni$_.JReference reference) => Fields.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $Fields$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Fields$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Fields$Type$) && other is $Fields$Type$; - } } /// from: `com.github.dart_lang.jnigen.pkg2.C2` -class C2 extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - C2.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type C2._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/pkg2/C2'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = $C2$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $C2$Type$(); static final _id_CONSTANT = _class.staticFieldId( @@ -2752,11 +2165,11 @@ class C2 extends jni$_.JObject { ); /// from: `static public int CONSTANT` - static int get CONSTANT => _id_CONSTANT.get(_class, const jni$_.jintType()); + static int get CONSTANT => _id_CONSTANT.get(_class, jni$_.jint.type); /// from: `static public int CONSTANT` static set CONSTANT(int value) => - _id_CONSTANT.set(_class, const jni$_.jintType(), value); + _id_CONSTANT.set(_class, jni$_.jint.type, value); static final _id_new$ = _class.constructorId( r'()V', @@ -2777,46 +2190,8 @@ class C2 extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory C2() { - return C2.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $C2$NullableType$ extends jni$_.JType { - @jni$_.internal - const $C2$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/pkg2/C2;'; - - @jni$_.internal - @core$_.override - C2? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : C2.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($C2$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($C2$NullableType$) && - other is $C2$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -2827,52 +2202,13 @@ final class $C2$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/pkg2/C2;'; - - @jni$_.internal - @core$_.override - C2 fromReference(jni$_.JReference reference) => C2.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $C2$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($C2$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($C2$Type$) && other is $C2$Type$; - } } /// from: `com.github.dart_lang.jnigen.pkg2.Example` -class Example$1 extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Example$1.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Example$1._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/pkg2/Example'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Example$1$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Example$1$Type$(); static final _id_new$ = _class.constructorId( @@ -2894,9 +2230,8 @@ class Example$1 extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory Example$1() { - return Example$1.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } static final _id_whichExample = _class.instanceMethodId( @@ -2924,43 +2259,6 @@ class Example$1 extends jni$_.JObject { } } -final class $Example$1$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Example$1$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/pkg2/Example;'; - - @jni$_.internal - @core$_.override - Example$1? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Example$1.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$1$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$1$NullableType$) && - other is $Example$1$NullableType$; - } -} - final class $Example$1$Type$ extends jni$_.JType { @jni$_.internal const $Example$1$Type$(); @@ -2968,53 +2266,13 @@ final class $Example$1$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/pkg2/Example;'; - - @jni$_.internal - @core$_.override - Example$1 fromReference(jni$_.JReference reference) => - Example$1.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $Example$1$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Example$1$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Example$1$Type$) && other is $Example$1$Type$; - } } /// from: `com.github.dart_lang.jnigen.enums.Colors$RGB` -class Colors$RGB extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Colors$RGB.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Colors$RGB._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/enums/Colors$RGB'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $Colors$RGB$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Colors$RGB$Type$(); static final _id_red = _class.instanceFieldId( @@ -3023,10 +2281,10 @@ class Colors$RGB extends jni$_.JObject { ); /// from: `public int red` - int get red => _id_red.get(this, const jni$_.jintType()); + int get red => _id_red.get(this, jni$_.jint.type); /// from: `public int red` - set red(int value) => _id_red.set(this, const jni$_.jintType(), value); + set red(int value) => _id_red.set(this, jni$_.jint.type, value); static final _id_green = _class.instanceFieldId( r'green', @@ -3034,10 +2292,10 @@ class Colors$RGB extends jni$_.JObject { ); /// from: `public int green` - int get green => _id_green.get(this, const jni$_.jintType()); + int get green => _id_green.get(this, jni$_.jint.type); /// from: `public int green` - set green(int value) => _id_green.set(this, const jni$_.jintType(), value); + set green(int value) => _id_green.set(this, jni$_.jint.type, value); static final _id_blue = _class.instanceFieldId( r'blue', @@ -3045,10 +2303,10 @@ class Colors$RGB extends jni$_.JObject { ); /// from: `public int blue` - int get blue => _id_blue.get(this, const jni$_.jintType()); + int get blue => _id_blue.get(this, jni$_.jint.type); /// from: `public int blue` - set blue(int value) => _id_blue.set(this, const jni$_.jintType(), value); + set blue(int value) => _id_blue.set(this, jni$_.jint.type, value); static final _id_new$ = _class.constructorId( r'(III)V', @@ -3072,9 +2330,9 @@ class Colors$RGB extends jni$_.JObject { int i1, int i2, ) { - return Colors$RGB.fromReference(_new$( + return _new$( _class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, i, i1, i2) - .reference); + .object(); } static final _id_equals = _class.instanceMethodId( @@ -3127,43 +2385,6 @@ class Colors$RGB extends jni$_.JObject { } } -final class $Colors$RGB$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Colors$RGB$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/enums/Colors$RGB;'; - - @jni$_.internal - @core$_.override - Colors$RGB? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Colors$RGB.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Colors$RGB$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Colors$RGB$NullableType$) && - other is $Colors$RGB$NullableType$; - } -} - final class $Colors$RGB$Type$ extends jni$_.JType { @jni$_.internal const $Colors$RGB$Type$(); @@ -3171,54 +2392,13 @@ final class $Colors$RGB$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/enums/Colors$RGB;'; - - @jni$_.internal - @core$_.override - Colors$RGB fromReference(jni$_.JReference reference) => - Colors$RGB.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $Colors$RGB$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Colors$RGB$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Colors$RGB$Type$) && - other is $Colors$RGB$Type$; - } } /// from: `com.github.dart_lang.jnigen.enums.Colors` -class Colors extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Colors.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Colors._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/enums/Colors'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = $Colors$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Colors$Type$(); static final _id_red = _class.staticFieldId( @@ -3228,7 +2408,8 @@ class Colors extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.enums.Colors red` /// The returned object must be released after use, by calling the [release] method. - static Colors get red => _id_red.get(_class, const $Colors$Type$()); + static Colors get red => + _id_red.get(_class, const jni$_.$JObject$NullableType$()); static final _id_green = _class.staticFieldId( r'green', @@ -3237,7 +2418,8 @@ class Colors extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.enums.Colors green` /// The returned object must be released after use, by calling the [release] method. - static Colors get green => _id_green.get(_class, const $Colors$Type$()); + static Colors get green => + _id_green.get(_class, const jni$_.$JObject$NullableType$()); static final _id_blue = _class.staticFieldId( r'blue', @@ -3246,7 +2428,8 @@ class Colors extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.enums.Colors blue` /// The returned object must be released after use, by calling the [release] method. - static Colors get blue => _id_blue.get(_class, const $Colors$Type$()); + static Colors get blue => + _id_blue.get(_class, const jni$_.$JObject$NullableType$()); static final _id_code = _class.instanceFieldId( r'code', @@ -3254,7 +2437,7 @@ class Colors extends jni$_.JObject { ); /// from: `public final int code` - int get code => _id_code.get(this, const jni$_.jintType()); + int get code => _id_code.get(this, jni$_.jint.type); static final _id_values = _class.staticMethodId( r'values', @@ -3277,9 +2460,7 @@ class Colors extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static jni$_.JArray? values() { return _values(_class.reference.pointer, _id_values as jni$_.JMethodIDPtr) - .object?>( - const jni$_.$JArray$NullableType$( - $Colors$NullableType$())); + .object?>(); } static final _id_valueOf = _class.staticMethodId( @@ -3306,7 +2487,7 @@ class Colors extends jni$_.JObject { final _$string = string?.reference ?? jni$_.jNullReference; return _valueOf(_class.reference.pointer, _id_valueOf as jni$_.JMethodIDPtr, _$string.pointer) - .object(const $Colors$NullableType$()); + .object(); } static final _id_toRGB = _class.instanceMethodId( @@ -3330,132 +2511,31 @@ class Colors extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. Colors$RGB? toRGB() { return _toRGB(reference.pointer, _id_toRGB as jni$_.JMethodIDPtr) - .object(const $Colors$RGB$NullableType$()); + .object(); } } -final class $Colors$NullableType$ extends jni$_.JType { +final class $Colors$Type$ extends jni$_.JType { @jni$_.internal - const $Colors$NullableType$(); + const $Colors$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/enums/Colors;'; +} - @jni$_.internal - @core$_.override - Colors? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Colors.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; +/// from: `com.github.dart_lang.jnigen.generics.GenericTypeParams` +extension type GenericTypeParams<$S extends jni$_.JObject?, + $K extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { + static final _class = jni$_.JClass.forName( + r'com/github/dart_lang/jnigen/generics/GenericTypeParams'); - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Colors$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Colors$NullableType$) && - other is $Colors$NullableType$; - } -} - -final class $Colors$Type$ extends jni$_.JType { - @jni$_.internal - const $Colors$Type$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/enums/Colors;'; - - @jni$_.internal - @core$_.override - Colors fromReference(jni$_.JReference reference) => Colors.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $Colors$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Colors$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Colors$Type$) && other is $Colors$Type$; - } -} - -/// from: `com.github.dart_lang.jnigen.generics.GenericTypeParams` -class GenericTypeParams<$S extends jni$_.JObject?, $K extends jni$_.JObject?> - extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - GenericTypeParams.fromReference( - this.S, - this.K, - jni$_.JReference reference, - ) : $type = type<$S, $K>(S, K), - super.fromReference(reference); - - static final _class = jni$_.JClass.forName( - r'com/github/dart_lang/jnigen/generics/GenericTypeParams'); - - /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$S extends jni$_.JObject?, $K extends jni$_.JObject?>( - jni$_.JType<$S> S, - jni$_.JType<$K> K, - ) { - return $GenericTypeParams$NullableType$<$S, $K>( - S, - K, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> - type<$S extends jni$_.JObject?, $K extends jni$_.JObject?>( - jni$_.JType<$S> S, - jni$_.JType<$K> K, - ) { - return $GenericTypeParams$Type$<$S, $K>( - S, - K, - ); - } - - static final _id_new$ = _class.constructorId( - r'()V', - ); + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = $GenericTypeParams$Type$(); + static final _id_new$ = _class.constructorId( + r'()V', + ); static final _new$ = jni$_.ProtectedJniExtensions.lookup< jni$_.NativeFunction< @@ -3471,185 +2551,32 @@ class GenericTypeParams<$S extends jni$_.JObject?, $K extends jni$_.JObject?> /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory GenericTypeParams({ - required jni$_.JType<$S> S, - required jni$_.JType<$K> K, - }) { - return GenericTypeParams<$S, $K>.fromReference( - S, - K, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $GenericTypeParams$NullableType$<$S extends jni$_.JObject?, - $K extends jni$_.JObject?> extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - const $GenericTypeParams$NullableType$( - this.S, - this.K, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/GenericTypeParams;'; - - @jni$_.internal - @core$_.override - GenericTypeParams<$S, $K>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : GenericTypeParams<$S, $K>.fromReference( - S, - K, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GenericTypeParams$NullableType$, S, K); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GenericTypeParams$NullableType$<$S, $K>) && - other is $GenericTypeParams$NullableType$<$S, $K> && - S == other.S && - K == other.K; + factory GenericTypeParams() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } } -final class $GenericTypeParams$Type$<$S extends jni$_.JObject?, - $K extends jni$_.JObject?> extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$S> S; - +final class $GenericTypeParams$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - const $GenericTypeParams$Type$( - this.S, - this.K, - ); + const $GenericTypeParams$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/GenericTypeParams;'; - - @jni$_.internal - @core$_.override - GenericTypeParams<$S, $K> fromReference(jni$_.JReference reference) => - GenericTypeParams<$S, $K>.fromReference( - S, - K, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GenericTypeParams$NullableType$<$S, $K>(S, K); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GenericTypeParams$Type$, S, K); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GenericTypeParams$Type$<$S, $K>) && - other is $GenericTypeParams$Type$<$S, $K> && - S == other.S && - K == other.K; - } } /// from: `com.github.dart_lang.jnigen.generics.GrandParent$Parent$Child` -class GrandParent$Parent$Child< - $T extends jni$_.JObject?, - $S extends jni$_.JObject?, - $U extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - GrandParent$Parent$Child.fromReference( - this.T, - this.S, - this.U, - jni$_.JReference reference, - ) : $type = type<$T, $S, $U>(T, S, U), - super.fromReference(reference); - +extension type GrandParent$Parent$Child<$T extends jni$_.JObject?, + $S extends jni$_.JObject?, $U extends jni$_.JObject?>._( + jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/GrandParent$Parent$Child'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType< - $T extends jni$_.JObject?, - $S extends jni$_.JObject?, - $U extends jni$_.JObject?>( - jni$_.JType<$T> T, - jni$_.JType<$S> S, - jni$_.JType<$U> U, - ) { - return $GrandParent$Parent$Child$NullableType$<$T, $S, $U>( - T, - S, - U, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type< - $T extends jni$_.JObject?, - $S extends jni$_.JObject?, - $U extends jni$_.JObject?>( - jni$_.JType<$T> T, - jni$_.JType<$S> S, - jni$_.JType<$U> U, - ) { - return $GrandParent$Parent$Child$Type$<$T, $S, $U>( - T, - S, - U, - ); - } - + static const jni$_.JType type = + $GrandParent$Parent$Child$Type$(); static final _id_grandParentValue = _class.instanceFieldId( r'grandParentValue', r'Ljava/lang/Object;', @@ -3657,12 +2584,13 @@ class GrandParent$Parent$Child< /// from: `public T grandParentValue` /// The returned object must be released after use, by calling the [release] method. - $T? get grandParentValue => _id_grandParentValue.get(this, T.nullableType); + $T? get grandParentValue => + _id_grandParentValue.get(this, const jni$_.$JObject$NullableType$()); /// from: `public T grandParentValue` /// The returned object must be released after use, by calling the [release] method. - set grandParentValue($T? value) => - _id_grandParentValue.set(this, T.nullableType, value); + set grandParentValue($T? value) => _id_grandParentValue.set( + this, const jni$_.$JObject$NullableType$(), value); static final _id_parentValue = _class.instanceFieldId( r'parentValue', @@ -3671,12 +2599,13 @@ class GrandParent$Parent$Child< /// from: `public S parentValue` /// The returned object must be released after use, by calling the [release] method. - $S? get parentValue => _id_parentValue.get(this, S.nullableType); + $S? get parentValue => + _id_parentValue.get(this, const jni$_.$JObject$NullableType$()); /// from: `public S parentValue` /// The returned object must be released after use, by calling the [release] method. set parentValue($S? value) => - _id_parentValue.set(this, S.nullableType, value); + _id_parentValue.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_value = _class.instanceFieldId( r'value', @@ -3685,11 +2614,12 @@ class GrandParent$Parent$Child< /// from: `public U value` /// The returned object must be released after use, by calling the [release] method. - $U? get value => _id_value.get(this, U.nullableType); + $U? get value => _id_value.get(this, const jni$_.$JObject$NullableType$()); /// from: `public U value` /// The returned object must be released after use, by calling the [release] method. - set value($U? value) => _id_value.set(this, U.nullableType, value); + set value($U? value) => + _id_value.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Lcom/github/dart_lang/jnigen/generics/GrandParent$Parent;Ljava/lang/Object;)V', @@ -3716,204 +2646,37 @@ class GrandParent$Parent$Child< /// The returned object must be released after use, by calling the [release] method. factory GrandParent$Parent$Child( GrandParent$Parent<$T?, $S?> $outerClass, - $U? object, { - jni$_.JType<$T>? T, - jni$_.JType<$S>? S, - required jni$_.JType<$U> U, - }) { - T ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type - as $GrandParent$Parent$Type$) - .T, - ]) as jni$_.JType<$T>; - S ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type - as $GrandParent$Parent$Type$) - .S, - ]) as jni$_.JType<$S>; + $U? object, + ) { final _$$outerClass = $outerClass.reference; final _$object = object?.reference ?? jni$_.jNullReference; - return GrandParent$Parent$Child<$T, $S, $U>.fromReference( - T, - S, - U, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$$outerClass.pointer, _$object.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer, _$object.pointer) + .object>(); } } -final class $GrandParent$Parent$Child$NullableType$<$T extends jni$_.JObject?, - $S extends jni$_.JObject?, $U extends jni$_.JObject?> - extends jni$_.JType?> { +final class $GrandParent$Parent$Child$Type$ + extends jni$_.JType { @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - const $GrandParent$Parent$Child$NullableType$( - this.T, - this.S, - this.U, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/GrandParent$Parent$Child;'; - - @jni$_.internal - @core$_.override - GrandParent$Parent$Child<$T, $S, $U>? fromReference( - jni$_.JReference reference) => - reference.isNull - ? null - : GrandParent$Parent$Child<$T, $S, $U>.fromReference( - T, - S, - U, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => - Object.hash($GrandParent$Parent$Child$NullableType$, T, S, U); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == - ($GrandParent$Parent$Child$NullableType$<$T, $S, $U>) && - other is $GrandParent$Parent$Child$NullableType$<$T, $S, $U> && - T == other.T && - S == other.S && - U == other.U; - } -} - -final class $GrandParent$Parent$Child$Type$<$T extends jni$_.JObject?, - $S extends jni$_.JObject?, $U extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - const $GrandParent$Parent$Child$Type$( - this.T, - this.S, - this.U, - ); + const $GrandParent$Parent$Child$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/GrandParent$Parent$Child;'; - - @jni$_.internal - @core$_.override - GrandParent$Parent$Child<$T, $S, $U> fromReference( - jni$_.JReference reference) => - GrandParent$Parent$Child<$T, $S, $U>.fromReference( - T, - S, - U, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GrandParent$Parent$Child$NullableType$<$T, $S, $U>(T, S, U); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$Parent$Child$Type$, T, S, U); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$Parent$Child$Type$<$T, $S, $U>) && - other is $GrandParent$Parent$Child$Type$<$T, $S, $U> && - T == other.T && - S == other.S && - U == other.U; - } } /// from: `com.github.dart_lang.jnigen.generics.GrandParent$Parent` -class GrandParent$Parent<$T extends jni$_.JObject?, $S extends jni$_.JObject?> - extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - GrandParent$Parent.fromReference( - this.T, - this.S, - jni$_.JReference reference, - ) : $type = type<$T, $S>(T, S), - super.fromReference(reference); - +extension type GrandParent$Parent<$T extends jni$_.JObject?, + $S extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/GrandParent$Parent'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$T extends jni$_.JObject?, $S extends jni$_.JObject?>( - jni$_.JType<$T> T, - jni$_.JType<$S> S, - ) { - return $GrandParent$Parent$NullableType$<$T, $S>( - T, - S, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> - type<$T extends jni$_.JObject?, $S extends jni$_.JObject?>( - jni$_.JType<$T> T, - jni$_.JType<$S> S, - ) { - return $GrandParent$Parent$Type$<$T, $S>( - T, - S, - ); - } - + static const jni$_.JType type = + $GrandParent$Parent$Type$(); static final _id_parentValue = _class.instanceFieldId( r'parentValue', r'Ljava/lang/Object;', @@ -3921,12 +2684,13 @@ class GrandParent$Parent<$T extends jni$_.JObject?, $S extends jni$_.JObject?> /// from: `public T parentValue` /// The returned object must be released after use, by calling the [release] method. - $T? get parentValue => _id_parentValue.get(this, T.nullableType); + $T? get parentValue => + _id_parentValue.get(this, const jni$_.$JObject$NullableType$()); /// from: `public T parentValue` /// The returned object must be released after use, by calling the [release] method. set parentValue($T? value) => - _id_parentValue.set(this, T.nullableType, value); + _id_parentValue.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_value = _class.instanceFieldId( r'value', @@ -3935,11 +2699,12 @@ class GrandParent$Parent<$T extends jni$_.JObject?, $S extends jni$_.JObject?> /// from: `public S value` /// The returned object must be released after use, by calling the [release] method. - $S? get value => _id_value.get(this, S.nullableType); + $S? get value => _id_value.get(this, const jni$_.$JObject$NullableType$()); /// from: `public S value` /// The returned object must be released after use, by calling the [release] method. - set value($S? value) => _id_value.set(this, S.nullableType, value); + set value($S? value) => + _id_value.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Lcom/github/dart_lang/jnigen/generics/GrandParent;Ljava/lang/Object;)V', @@ -3966,178 +2731,36 @@ class GrandParent$Parent<$T extends jni$_.JObject?, $S extends jni$_.JObject?> /// The returned object must be released after use, by calling the [release] method. factory GrandParent$Parent( GrandParent<$T?> $outerClass, - $S? object, { - jni$_.JType<$T>? T, - required jni$_.JType<$S> S, - }) { - T ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $GrandParent$Type$).T, - ]) as jni$_.JType<$T>; + $S? object, + ) { final _$$outerClass = $outerClass.reference; final _$object = object?.reference ?? jni$_.jNullReference; - return GrandParent$Parent<$T, $S>.fromReference( - T, - S, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$$outerClass.pointer, _$object.pointer) - .reference); - } -} - -final class $GrandParent$Parent$NullableType$<$T extends jni$_.JObject?, - $S extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - const $GrandParent$Parent$NullableType$( - this.T, - this.S, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/GrandParent$Parent;'; - - @jni$_.internal - @core$_.override - GrandParent$Parent<$T, $S>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : GrandParent$Parent<$T, $S>.fromReference( - T, - S, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$Parent$NullableType$, T, S); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$Parent$NullableType$<$T, $S>) && - other is $GrandParent$Parent$NullableType$<$T, $S> && - T == other.T && - S == other.S; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer, _$object.pointer) + .object>(); } } -final class $GrandParent$Parent$Type$<$T extends jni$_.JObject?, - $S extends jni$_.JObject?> extends jni$_.JType> { +final class $GrandParent$Parent$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - const $GrandParent$Parent$Type$( - this.T, - this.S, - ); + const $GrandParent$Parent$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/GrandParent$Parent;'; - - @jni$_.internal - @core$_.override - GrandParent$Parent<$T, $S> fromReference(jni$_.JReference reference) => - GrandParent$Parent<$T, $S>.fromReference( - T, - S, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GrandParent$Parent$NullableType$<$T, $S>(T, S); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$Parent$Type$, T, S); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$Parent$Type$<$T, $S>) && - other is $GrandParent$Parent$Type$<$T, $S> && - T == other.T && - S == other.S; - } } /// from: `com.github.dart_lang.jnigen.generics.GrandParent$StaticParent$Child` -class GrandParent$StaticParent$Child<$S extends jni$_.JObject?, - $U extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - GrandParent$StaticParent$Child.fromReference( - this.S, - this.U, - jni$_.JReference reference, - ) : $type = type<$S, $U>(S, U), - super.fromReference(reference); - +extension type GrandParent$StaticParent$Child<$S extends jni$_.JObject?, + $U extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/GrandParent$StaticParent$Child'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$S extends jni$_.JObject?, $U extends jni$_.JObject?>( - jni$_.JType<$S> S, - jni$_.JType<$U> U, - ) { - return $GrandParent$StaticParent$Child$NullableType$<$S, $U>( - S, - U, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> - type<$S extends jni$_.JObject?, $U extends jni$_.JObject?>( - jni$_.JType<$S> S, - jni$_.JType<$U> U, - ) { - return $GrandParent$StaticParent$Child$Type$<$S, $U>( - S, - U, - ); - } - + static const jni$_.JType type = + $GrandParent$StaticParent$Child$Type$(); static final _id_parentValue = _class.instanceFieldId( r'parentValue', r'Ljava/lang/Object;', @@ -4145,12 +2768,13 @@ class GrandParent$StaticParent$Child<$S extends jni$_.JObject?, /// from: `public S parentValue` /// The returned object must be released after use, by calling the [release] method. - $S? get parentValue => _id_parentValue.get(this, S.nullableType); + $S? get parentValue => + _id_parentValue.get(this, const jni$_.$JObject$NullableType$()); /// from: `public S parentValue` /// The returned object must be released after use, by calling the [release] method. set parentValue($S? value) => - _id_parentValue.set(this, S.nullableType, value); + _id_parentValue.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_value = _class.instanceFieldId( r'value', @@ -4159,11 +2783,12 @@ class GrandParent$StaticParent$Child<$S extends jni$_.JObject?, /// from: `public U value` /// The returned object must be released after use, by calling the [release] method. - $U? get value => _id_value.get(this, U.nullableType); + $U? get value => _id_value.get(this, const jni$_.$JObject$NullableType$()); /// from: `public U value` /// The returned object must be released after use, by calling the [release] method. - set value($U? value) => _id_value.set(this, U.nullableType, value); + set value($U? value) => + _id_value.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Lcom/github/dart_lang/jnigen/generics/GrandParent$StaticParent;Ljava/lang/Object;Ljava/lang/Object;)V', @@ -4193,177 +2818,37 @@ class GrandParent$StaticParent$Child<$S extends jni$_.JObject?, factory GrandParent$StaticParent$Child( GrandParent$StaticParent<$S?> $outerClass, $S? object, - $U? object1, { - jni$_.JType<$S>? S, - required jni$_.JType<$U> U, - }) { - S ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $GrandParent$StaticParent$Type$).S, - ]) as jni$_.JType<$S>; + $U? object1, + ) { final _$$outerClass = $outerClass.reference; final _$object = object?.reference ?? jni$_.jNullReference; final _$object1 = object1?.reference ?? jni$_.jNullReference; - return GrandParent$StaticParent$Child<$S, $U>.fromReference( - S, - U, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$$outerClass.pointer, _$object.pointer, _$object1.pointer) - .reference); - } -} - -final class $GrandParent$StaticParent$Child$NullableType$< - $S extends jni$_.JObject?, $U extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - const $GrandParent$StaticParent$Child$NullableType$( - this.S, - this.U, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/GrandParent$StaticParent$Child;'; - - @jni$_.internal - @core$_.override - GrandParent$StaticParent$Child<$S, $U>? fromReference( - jni$_.JReference reference) => - reference.isNull - ? null - : GrandParent$StaticParent$Child<$S, $U>.fromReference( - S, - U, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => - Object.hash($GrandParent$StaticParent$Child$NullableType$, S, U); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == - ($GrandParent$StaticParent$Child$NullableType$<$S, $U>) && - other is $GrandParent$StaticParent$Child$NullableType$<$S, $U> && - S == other.S && - U == other.U; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer, _$object.pointer, _$object1.pointer) + .object>(); } } -final class $GrandParent$StaticParent$Child$Type$<$S extends jni$_.JObject?, - $U extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$S> S; - +final class $GrandParent$StaticParent$Child$Type$ + extends jni$_.JType { @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - const $GrandParent$StaticParent$Child$Type$( - this.S, - this.U, - ); + const $GrandParent$StaticParent$Child$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/GrandParent$StaticParent$Child;'; - - @jni$_.internal - @core$_.override - GrandParent$StaticParent$Child<$S, $U> fromReference( - jni$_.JReference reference) => - GrandParent$StaticParent$Child<$S, $U>.fromReference( - S, - U, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GrandParent$StaticParent$Child$NullableType$<$S, $U>(S, U); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$StaticParent$Child$Type$, S, U); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == - ($GrandParent$StaticParent$Child$Type$<$S, $U>) && - other is $GrandParent$StaticParent$Child$Type$<$S, $U> && - S == other.S && - U == other.U; - } } /// from: `com.github.dart_lang.jnigen.generics.GrandParent$StaticParent` -class GrandParent$StaticParent<$S extends jni$_.JObject?> - extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - GrandParent$StaticParent.fromReference( - this.S, - jni$_.JReference reference, - ) : $type = type<$S>(S), - super.fromReference(reference); - +extension type GrandParent$StaticParent<$S extends jni$_.JObject?>._( + jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/GrandParent$StaticParent'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$S extends jni$_.JObject?>( - jni$_.JType<$S> S, - ) { - return $GrandParent$StaticParent$NullableType$<$S>( - S, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> - type<$S extends jni$_.JObject?>( - jni$_.JType<$S> S, - ) { - return $GrandParent$StaticParent$Type$<$S>( - S, - ); - } - + static const jni$_.JType type = + $GrandParent$StaticParent$Type$(); static final _id_value = _class.instanceFieldId( r'value', r'Ljava/lang/Object;', @@ -4371,11 +2856,12 @@ class GrandParent$StaticParent<$S extends jni$_.JObject?> /// from: `public S value` /// The returned object must be released after use, by calling the [release] method. - $S? get value => _id_value.get(this, S.nullableType); + $S? get value => _id_value.get(this, const jni$_.$JObject$NullableType$()); /// from: `public S value` /// The returned object must be released after use, by calling the [release] method. - set value($S? value) => _id_value.set(this, S.nullableType, value); + set value($S? value) => + _id_value.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Ljava/lang/Object;)V', @@ -4395,148 +2881,34 @@ class GrandParent$StaticParent<$S extends jni$_.JObject?> /// from: `public void (S object)` /// The returned object must be released after use, by calling the [release] method. factory GrandParent$StaticParent( - $S? object, { - required jni$_.JType<$S> S, - }) { + $S? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; - return GrandParent$StaticParent<$S>.fromReference( - S, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$object.pointer) - .reference); - } -} - -final class $GrandParent$StaticParent$NullableType$<$S extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$S> S; - - @jni$_.internal - const $GrandParent$StaticParent$NullableType$( - this.S, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/GrandParent$StaticParent;'; - - @jni$_.internal - @core$_.override - GrandParent$StaticParent<$S>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : GrandParent$StaticParent<$S>.fromReference( - S, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$StaticParent$NullableType$, S); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$StaticParent$NullableType$<$S>) && - other is $GrandParent$StaticParent$NullableType$<$S> && - S == other.S; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$object.pointer) + .object>(); } } -final class $GrandParent$StaticParent$Type$<$S extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$S> S; - +final class $GrandParent$StaticParent$Type$ + extends jni$_.JType { @jni$_.internal - const $GrandParent$StaticParent$Type$( - this.S, - ); + const $GrandParent$StaticParent$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/GrandParent$StaticParent;'; - - @jni$_.internal - @core$_.override - GrandParent$StaticParent<$S> fromReference(jni$_.JReference reference) => - GrandParent$StaticParent<$S>.fromReference( - S, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GrandParent$StaticParent$NullableType$<$S>(S); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$StaticParent$Type$, S); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$StaticParent$Type$<$S>) && - other is $GrandParent$StaticParent$Type$<$S> && - S == other.S; - } } /// from: `com.github.dart_lang.jnigen.generics.GrandParent` -class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - GrandParent.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type GrandParent<$T extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/generics/GrandParent'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $GrandParent$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $GrandParent$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $GrandParent$Type$(); static final _id_value = _class.instanceFieldId( r'value', r'Ljava/lang/Object;', @@ -4544,11 +2916,12 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public T value` /// The returned object must be released after use, by calling the [release] method. - $T? get value => _id_value.get(this, T.nullableType); + $T? get value => _id_value.get(this, const jni$_.$JObject$NullableType$()); /// from: `public T value` /// The returned object must be released after use, by calling the [release] method. - set value($T? value) => _id_value.set(this, T.nullableType, value); + set value($T? value) => + _id_value.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Ljava/lang/Object;)V', @@ -4568,15 +2941,12 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public void (T object)` /// The returned object must be released after use, by calling the [release] method. factory GrandParent( - $T? object, { - required jni$_.JType<$T> T, - }) { + $T? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; - return GrandParent<$T>.fromReference( - T, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$object.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$object.pointer) + .object>(); } static final _id_stringParent = _class.instanceMethodId( @@ -4601,9 +2971,7 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { GrandParent$Parent<$T?, jni$_.JString?>? stringParent() { return _stringParent( reference.pointer, _id_stringParent as jni$_.JMethodIDPtr) - .object?>( - $GrandParent$Parent$NullableType$<$T?, jni$_.JString?>( - T.nullableType, const jni$_.$JString$NullableType$())); + .object?>(); } static final _id_varParent = _class.instanceMethodId( @@ -4625,15 +2993,12 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public com.github.dart_lang.jnigen.generics.GrandParent$Parent varParent(S object)` /// The returned object must be released after use, by calling the [release] method. GrandParent$Parent<$T?, $S?>? varParent<$S extends jni$_.JObject?>( - $S? object, { - required jni$_.JType<$S> S, - }) { + $S? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _varParent(reference.pointer, _id_varParent as jni$_.JMethodIDPtr, _$object.pointer) - .object?>( - $GrandParent$Parent$NullableType$<$T?, $S?>( - T.nullableType, S.nullableType)); + .object?>(); } static final _id_stringStaticParent = _class.staticMethodId( @@ -4658,9 +3023,7 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { static GrandParent$StaticParent? stringStaticParent() { return _stringStaticParent(_class.reference.pointer, _id_stringStaticParent as jni$_.JMethodIDPtr) - .object?>( - const $GrandParent$StaticParent$NullableType$( - jni$_.$JString$NullableType$())); + .object?>(); } static final _id_varStaticParent = _class.staticMethodId( @@ -4683,14 +3046,12 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static GrandParent$StaticParent<$S?>? varStaticParent<$S extends jni$_.JObject?>( - $S? object, { - required jni$_.JType<$S> S, - }) { + $S? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _varStaticParent(_class.reference.pointer, _id_varStaticParent as jni$_.JMethodIDPtr, _$object.pointer) - .object?>( - $GrandParent$StaticParent$NullableType$<$S?>(S.nullableType)); + .object?>(); } static final _id_staticParentWithSameType = _class.instanceMethodId( @@ -4715,149 +3076,28 @@ class GrandParent<$T extends jni$_.JObject?> extends jni$_.JObject { GrandParent$StaticParent<$T?>? staticParentWithSameType() { return _staticParentWithSameType(reference.pointer, _id_staticParentWithSameType as jni$_.JMethodIDPtr) - .object?>( - $GrandParent$StaticParent$NullableType$<$T?>(T.nullableType)); - } -} - -final class $GrandParent$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $GrandParent$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/generics/GrandParent;'; - - @jni$_.internal - @core$_.override - GrandParent<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : GrandParent<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$NullableType$<$T>) && - other is $GrandParent$NullableType$<$T> && - T == other.T; + .object?>(); } } -final class $GrandParent$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - +final class $GrandParent$Type$ extends jni$_.JType { @jni$_.internal - const $GrandParent$Type$( - this.T, - ); + const $GrandParent$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/GrandParent;'; - - @jni$_.internal - @core$_.override - GrandParent<$T> fromReference(jni$_.JReference reference) => - GrandParent<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GrandParent$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GrandParent$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GrandParent$Type$<$T>) && - other is $GrandParent$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.generics.MyMap$MyEntry` -class MyMap$MyEntry<$K extends jni$_.JObject?, $V extends jni$_.JObject?> - extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - MyMap$MyEntry.fromReference( - this.K, - this.V, - jni$_.JReference reference, - ) : $type = type<$K, $V>(K, V), - super.fromReference(reference); - +extension type MyMap$MyEntry<$K extends jni$_.JObject?, + $V extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/MyMap$MyEntry'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$K extends jni$_.JObject?, $V extends jni$_.JObject?>( - jni$_.JType<$K> K, - jni$_.JType<$V> V, - ) { - return $MyMap$MyEntry$NullableType$<$K, $V>( - K, - V, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> - type<$K extends jni$_.JObject?, $V extends jni$_.JObject?>( - jni$_.JType<$K> K, - jni$_.JType<$V> V, - ) { - return $MyMap$MyEntry$Type$<$K, $V>( - K, - V, - ); - } - + static const jni$_.JType type = $MyMap$MyEntry$Type$(); static final _id_key = _class.instanceFieldId( r'key', r'Ljava/lang/Object;', @@ -4865,11 +3105,12 @@ class MyMap$MyEntry<$K extends jni$_.JObject?, $V extends jni$_.JObject?> /// from: `public K key` /// The returned object must be released after use, by calling the [release] method. - $K? get key => _id_key.get(this, K.nullableType); + $K? get key => _id_key.get(this, const jni$_.$JObject$NullableType$()); /// from: `public K key` /// The returned object must be released after use, by calling the [release] method. - set key($K? value) => _id_key.set(this, K.nullableType, value); + set key($K? value) => + _id_key.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_value = _class.instanceFieldId( r'value', @@ -4878,11 +3119,12 @@ class MyMap$MyEntry<$K extends jni$_.JObject?, $V extends jni$_.JObject?> /// from: `public V value` /// The returned object must be released after use, by calling the [release] method. - $V? get value => _id_value.get(this, V.nullableType); + $V? get value => _id_value.get(this, const jni$_.$JObject$NullableType$()); /// from: `public V value` /// The returned object must be released after use, by calling the [release] method. - set value($V? value) => _id_value.set(this, V.nullableType, value); + set value($V? value) => + _id_value.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Lcom/github/dart_lang/jnigen/generics/MyMap;Ljava/lang/Object;Ljava/lang/Object;)V', @@ -4912,181 +3154,35 @@ class MyMap$MyEntry<$K extends jni$_.JObject?, $V extends jni$_.JObject?> factory MyMap$MyEntry( MyMap<$K?, $V?> $outerClass, $K? object, - $V? object1, { - jni$_.JType<$K>? K, - jni$_.JType<$V>? V, - }) { - K ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $MyMap$Type$).K, - ]) as jni$_.JType<$K>; - V ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $MyMap$Type$).V, - ]) as jni$_.JType<$V>; - final _$$outerClass = $outerClass.reference; - final _$object = object?.reference ?? jni$_.jNullReference; - final _$object1 = object1?.reference ?? jni$_.jNullReference; - return MyMap$MyEntry<$K, $V>.fromReference( - K, - V, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$$outerClass.pointer, _$object.pointer, _$object1.pointer) - .reference); - } -} - -final class $MyMap$MyEntry$NullableType$<$K extends jni$_.JObject?, - $V extends jni$_.JObject?> extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - const $MyMap$MyEntry$NullableType$( - this.K, - this.V, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/MyMap$MyEntry;'; - - @jni$_.internal - @core$_.override - MyMap$MyEntry<$K, $V>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : MyMap$MyEntry<$K, $V>.fromReference( - K, - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyMap$MyEntry$NullableType$, K, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyMap$MyEntry$NullableType$<$K, $V>) && - other is $MyMap$MyEntry$NullableType$<$K, $V> && - K == other.K && - V == other.V; + $V? object1, + ) { + final _$$outerClass = $outerClass.reference; + final _$object = object?.reference ?? jni$_.jNullReference; + final _$object1 = object1?.reference ?? jni$_.jNullReference; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer, _$object.pointer, _$object1.pointer) + .object>(); } } -final class $MyMap$MyEntry$Type$<$K extends jni$_.JObject?, - $V extends jni$_.JObject?> extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - final jni$_.JType<$V> V; - +final class $MyMap$MyEntry$Type$ extends jni$_.JType { @jni$_.internal - const $MyMap$MyEntry$Type$( - this.K, - this.V, - ); + const $MyMap$MyEntry$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/MyMap$MyEntry;'; - - @jni$_.internal - @core$_.override - MyMap$MyEntry<$K, $V> fromReference(jni$_.JReference reference) => - MyMap$MyEntry<$K, $V>.fromReference( - K, - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $MyMap$MyEntry$NullableType$<$K, $V>(K, V); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyMap$MyEntry$Type$, K, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyMap$MyEntry$Type$<$K, $V>) && - other is $MyMap$MyEntry$Type$<$K, $V> && - K == other.K && - V == other.V; - } } /// from: `com.github.dart_lang.jnigen.generics.MyMap` -class MyMap<$K extends jni$_.JObject?, $V extends jni$_.JObject?> - extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - MyMap.fromReference( - this.K, - this.V, - jni$_.JReference reference, - ) : $type = type<$K, $V>(K, V), - super.fromReference(reference); - +extension type MyMap<$K extends jni$_.JObject?, $V extends jni$_.JObject?>._( + jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/generics/MyMap'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$K extends jni$_.JObject?, $V extends jni$_.JObject?>( - jni$_.JType<$K> K, - jni$_.JType<$V> V, - ) { - return $MyMap$NullableType$<$K, $V>( - K, - V, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> - type<$K extends jni$_.JObject?, $V extends jni$_.JObject?>( - jni$_.JType<$K> K, - jni$_.JType<$V> V, - ) { - return $MyMap$Type$<$K, $V>( - K, - V, - ); - } - + static const jni$_.JType type = $MyMap$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -5105,15 +3201,9 @@ class MyMap<$K extends jni$_.JObject?, $V extends jni$_.JObject?> /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory MyMap({ - required jni$_.JType<$K> K, - required jni$_.JType<$V> V, - }) { - return MyMap<$K, $V>.fromReference( - K, - V, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + factory MyMap() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } static final _id_get = _class.instanceMethodId( @@ -5140,7 +3230,7 @@ class MyMap<$K extends jni$_.JObject?, $V extends jni$_.JObject?> final _$object = object?.reference ?? jni$_.jNullReference; return _get( reference.pointer, _id_get as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_put = _class.instanceMethodId( @@ -5175,7 +3265,7 @@ class MyMap<$K extends jni$_.JObject?, $V extends jni$_.JObject?> final _$object1 = object1?.reference ?? jni$_.jNullReference; return _put(reference.pointer, _id_put as jni$_.JMethodIDPtr, _$object.pointer, _$object1.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_entryStack = _class.instanceMethodId( @@ -5199,152 +3289,27 @@ class MyMap<$K extends jni$_.JObject?, $V extends jni$_.JObject?> /// The returned object must be released after use, by calling the [release] method. MyStack?>? entryStack() { return _entryStack(reference.pointer, _id_entryStack as jni$_.JMethodIDPtr) - .object?>?>( - $MyStack$NullableType$?>( - $MyMap$MyEntry$NullableType$<$K?, $V?>( - K.nullableType, V.nullableType))); - } -} - -final class $MyMap$NullableType$<$K extends jni$_.JObject?, - $V extends jni$_.JObject?> extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - const $MyMap$NullableType$( - this.K, - this.V, - ); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/generics/MyMap;'; - - @jni$_.internal - @core$_.override - MyMap<$K, $V>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : MyMap<$K, $V>.fromReference( - K, - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyMap$NullableType$, K, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyMap$NullableType$<$K, $V>) && - other is $MyMap$NullableType$<$K, $V> && - K == other.K && - V == other.V; + .object?>?>(); } } -final class $MyMap$Type$<$K extends jni$_.JObject?, $V extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$K> K; - +final class $MyMap$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - const $MyMap$Type$( - this.K, - this.V, - ); + const $MyMap$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/MyMap;'; - - @jni$_.internal - @core$_.override - MyMap<$K, $V> fromReference(jni$_.JReference reference) => - MyMap<$K, $V>.fromReference( - K, - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $MyMap$NullableType$<$K, $V>(K, V); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyMap$Type$, K, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyMap$Type$<$K, $V>) && - other is $MyMap$Type$<$K, $V> && - K == other.K && - V == other.V; - } } /// from: `com.github.dart_lang.jnigen.generics.MyStack` -class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - MyStack.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type MyStack<$T extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/generics/MyStack'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $MyStack$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $MyStack$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $MyStack$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -5363,13 +3328,9 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory MyStack({ - required jni$_.JType<$T> T, - }) { - return MyStack<$T>.fromReference( - T, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + factory MyStack() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } static final _id_fromArray = _class.staticMethodId( @@ -5391,13 +3352,12 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `static public com.github.dart_lang.jnigen.generics.MyStack fromArray(T[] objects)` /// The returned object must be released after use, by calling the [release] method. static MyStack<$T?>? fromArray<$T extends jni$_.JObject?>( - jni$_.JArray<$T?>? objects, { - required jni$_.JType<$T> T, - }) { + jni$_.JArray<$T?>? objects, + ) { final _$objects = objects?.reference ?? jni$_.jNullReference; return _fromArray(_class.reference.pointer, _id_fromArray as jni$_.JMethodIDPtr, _$objects.pointer) - .object?>($MyStack$NullableType$<$T?>(T.nullableType)); + .object?>(); } static final _id_fromArrayOfArrayOfGrandParents = _class.staticMethodId( @@ -5421,15 +3381,14 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static MyStack<$S?>? fromArrayOfArrayOfGrandParents<$S extends jni$_.JObject?>( - jni$_.JArray?>?>? grandParents, { - required jni$_.JType<$S> S, - }) { + jni$_.JArray?>?>? grandParents, + ) { final _$grandParents = grandParents?.reference ?? jni$_.jNullReference; return _fromArrayOfArrayOfGrandParents( _class.reference.pointer, _id_fromArrayOfArrayOfGrandParents as jni$_.JMethodIDPtr, _$grandParents.pointer) - .object?>($MyStack$NullableType$<$S?>(S.nullableType)); + .object?>(); } static final _id_of = _class.staticMethodId( @@ -5451,11 +3410,9 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `static public com.github.dart_lang.jnigen.generics.MyStack of()` /// The returned object must be released after use, by calling the [release] method. - static MyStack<$T?>? of<$T extends jni$_.JObject?>({ - required jni$_.JType<$T> T, - }) { + static MyStack<$T?>? of<$T extends jni$_.JObject?>() { return _of(_class.reference.pointer, _id_of as jni$_.JMethodIDPtr) - .object?>($MyStack$NullableType$<$T?>(T.nullableType)); + .object?>(); } static final _id_of$1 = _class.staticMethodId( @@ -5477,13 +3434,12 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `static public com.github.dart_lang.jnigen.generics.MyStack of(T object)` /// The returned object must be released after use, by calling the [release] method. static MyStack<$T?>? of$1<$T extends jni$_.JObject?>( - $T? object, { - required jni$_.JType<$T> T, - }) { + $T? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _of$1(_class.reference.pointer, _id_of$1 as jni$_.JMethodIDPtr, _$object.pointer) - .object?>($MyStack$NullableType$<$T?>(T.nullableType)); + .object?>(); } static final _id_of$2 = _class.staticMethodId( @@ -5512,14 +3468,13 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static MyStack<$T?>? of$2<$T extends jni$_.JObject?>( $T? object, - $T? object1, { - required jni$_.JType<$T> T, - }) { + $T? object1, + ) { final _$object = object?.reference ?? jni$_.jNullReference; final _$object1 = object1?.reference ?? jni$_.jNullReference; return _of$2(_class.reference.pointer, _id_of$2 as jni$_.JMethodIDPtr, _$object.pointer, _$object1.pointer) - .object?>($MyStack$NullableType$<$T?>(T.nullableType)); + .object?>(); } static final _id_push = _class.instanceMethodId( @@ -5567,8 +3522,7 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public T pop()` /// The returned object must be released after use, by calling the [release] method. $T? pop() { - return _pop(reference.pointer, _id_pop as jni$_.JMethodIDPtr) - .object<$T?>(T.nullableType); + return _pop(reference.pointer, _id_pop as jni$_.JMethodIDPtr).object<$T?>(); } static final _id_size = _class.instanceMethodId( @@ -5594,135 +3548,23 @@ class MyStack<$T extends jni$_.JObject?> extends jni$_.JObject { } } -final class $MyStack$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $MyStack$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/generics/MyStack;'; - - @jni$_.internal - @core$_.override - MyStack<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : MyStack<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyStack$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyStack$NullableType$<$T>) && - other is $MyStack$NullableType$<$T> && - T == other.T; - } -} - -final class $MyStack$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { +final class $MyStack$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $MyStack$Type$( - this.T, - ); + const $MyStack$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/MyStack;'; - - @jni$_.internal - @core$_.override - MyStack<$T> fromReference(jni$_.JReference reference) => - MyStack<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => $MyStack$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyStack$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyStack$Type$<$T>) && - other is $MyStack$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.generics.StringKeyedMap` -class StringKeyedMap<$V extends jni$_.JObject?> - extends MyMap { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - StringKeyedMap.fromReference( - this.V, - jni$_.JReference reference, - ) : $type = type<$V>(V), - super.fromReference( - const jni$_.$JString$NullableType$(), V.nullableType, reference); - +extension type StringKeyedMap<$V extends jni$_.JObject?>._(jni$_.JObject _$this) + implements MyMap { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/StringKeyedMap'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$V extends jni$_.JObject?>( - jni$_.JType<$V> V, - ) { - return $StringKeyedMap$NullableType$<$V>( - V, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$V extends jni$_.JObject?>( - jni$_.JType<$V> V, - ) { - return $StringKeyedMap$Type$<$V>( - V, - ); - } - + static const jni$_.JType type = $StringKeyedMap$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -5741,130 +3583,28 @@ class StringKeyedMap<$V extends jni$_.JObject?> /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory StringKeyedMap({ - required jni$_.JType<$V> V, - }) { - return StringKeyedMap<$V>.fromReference( - V, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $StringKeyedMap$NullableType$<$V extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - const $StringKeyedMap$NullableType$( - this.V, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/StringKeyedMap;'; - - @jni$_.internal - @core$_.override - StringKeyedMap<$V>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : StringKeyedMap<$V>.fromReference( - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => $MyMap$NullableType$( - const jni$_.$JString$NullableType$(), V.nullableType); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => Object.hash($StringKeyedMap$NullableType$, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringKeyedMap$NullableType$<$V>) && - other is $StringKeyedMap$NullableType$<$V> && - V == other.V; + factory StringKeyedMap() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } } -final class $StringKeyedMap$Type$<$V extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$V> V; - +final class $StringKeyedMap$Type$ extends jni$_.JType { @jni$_.internal - const $StringKeyedMap$Type$( - this.V, - ); + const $StringKeyedMap$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/StringKeyedMap;'; - - @jni$_.internal - @core$_.override - StringKeyedMap<$V> fromReference(jni$_.JReference reference) => - StringKeyedMap<$V>.fromReference( - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => $MyMap$NullableType$( - const jni$_.$JString$NullableType$(), V.nullableType); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $StringKeyedMap$NullableType$<$V>(V); - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => Object.hash($StringKeyedMap$Type$, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringKeyedMap$Type$<$V>) && - other is $StringKeyedMap$Type$<$V> && - V == other.V; - } } /// from: `com.github.dart_lang.jnigen.generics.StringMap` -class StringMap extends StringKeyedMap { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - StringMap.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(const jni$_.$JString$NullableType$(), reference); - +extension type StringMap._(jni$_.JObject _$this) + implements StringKeyedMap { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/generics/StringMap'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $StringMap$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $StringMap$Type$(); static final _id_new$ = _class.constructorId( @@ -5880,54 +3620,14 @@ class StringMap extends StringKeyedMap { .asFunction< jni$_.JniResult Function( jni$_.Pointer, - jni$_.JMethodIDPtr, - )>(); - - /// from: `public void ()` - /// The returned object must be released after use, by calling the [release] method. - factory StringMap() { - return StringMap.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $StringMap$NullableType$ extends jni$_.JType { - @jni$_.internal - const $StringMap$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/generics/StringMap;'; - - @jni$_.internal - @core$_.override - StringMap? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : StringMap.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => - const $StringKeyedMap$NullableType$( - jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 3; - - @core$_.override - int get hashCode => ($StringMap$NullableType$).hashCode; + jni$_.JMethodIDPtr, + )>(); - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringMap$NullableType$) && - other is $StringMap$NullableType$; + /// from: `public void ()` + /// The returned object must be released after use, by calling the [release] method. + factory StringMap() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -5938,55 +3638,14 @@ final class $StringMap$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/StringMap;'; - - @jni$_.internal - @core$_.override - StringMap fromReference(jni$_.JReference reference) => - StringMap.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => - const $StringKeyedMap$NullableType$( - jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $StringMap$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 3; - - @core$_.override - int get hashCode => ($StringMap$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringMap$Type$) && other is $StringMap$Type$; - } } /// from: `com.github.dart_lang.jnigen.generics.StringStack` -class StringStack extends MyStack { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - StringStack.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(const jni$_.$JString$NullableType$(), reference); - +extension type StringStack._(jni$_.JObject _$this) + implements MyStack { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/generics/StringStack'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $StringStack$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $StringStack$Type$(); static final _id_new$ = _class.constructorId( @@ -6008,47 +3667,8 @@ class StringStack extends MyStack { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory StringStack() { - return StringStack.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $StringStack$NullableType$ extends jni$_.JType { - @jni$_.internal - const $StringStack$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/generics/StringStack;'; - - @jni$_.internal - @core$_.override - StringStack? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : StringStack.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const $MyStack$NullableType$( - jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => ($StringStack$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringStack$NullableType$) && - other is $StringStack$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -6059,77 +3679,16 @@ final class $StringStack$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/StringStack;'; - - @jni$_.internal - @core$_.override - StringStack fromReference(jni$_.JReference reference) => - StringStack.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const $MyStack$NullableType$( - jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $StringStack$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => ($StringStack$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringStack$Type$) && - other is $StringStack$Type$; - } } /// from: `com.github.dart_lang.jnigen.generics.StringValuedMap` -class StringValuedMap<$K extends jni$_.JObject?> - extends MyMap<$K?, jni$_.JString?> { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - StringValuedMap.fromReference( - this.K, - jni$_.JReference reference, - ) : $type = type<$K>(K), - super.fromReference( - K.nullableType, const jni$_.$JString$NullableType$(), reference); - +extension type StringValuedMap<$K extends jni$_.JObject?>._( + jni$_.JObject _$this) implements MyMap<$K?, jni$_.JString?> { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/generics/StringValuedMap'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$K extends jni$_.JObject?>( - jni$_.JType<$K> K, - ) { - return $StringValuedMap$NullableType$<$K>( - K, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$K extends jni$_.JObject?>( - jni$_.JType<$K> K, - ) { - return $StringValuedMap$Type$<$K>( - K, - ); - } - + static const jni$_.JType type = $StringValuedMap$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -6148,149 +3707,30 @@ class StringValuedMap<$K extends jni$_.JObject?> /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory StringValuedMap({ - required jni$_.JType<$K> K, - }) { - return StringValuedMap<$K>.fromReference( - K, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $StringValuedMap$NullableType$<$K extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - const $StringValuedMap$NullableType$( - this.K, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/generics/StringValuedMap;'; - - @jni$_.internal - @core$_.override - StringValuedMap<$K>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : StringValuedMap<$K>.fromReference( - K, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => $MyMap$NullableType$<$K?, jni$_.JString?>( - K.nullableType, const jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => Object.hash($StringValuedMap$NullableType$, K); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringValuedMap$NullableType$<$K>) && - other is $StringValuedMap$NullableType$<$K> && - K == other.K; + factory StringValuedMap() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } } -final class $StringValuedMap$Type$<$K extends jni$_.JObject?> - extends jni$_.JType> { +final class $StringValuedMap$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$K> K; - - @jni$_.internal - const $StringValuedMap$Type$( - this.K, - ); + const $StringValuedMap$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/generics/StringValuedMap;'; - - @jni$_.internal - @core$_.override - StringValuedMap<$K> fromReference(jni$_.JReference reference) => - StringValuedMap<$K>.fromReference( - K, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => $MyMap$NullableType$<$K?, jni$_.JString?>( - K.nullableType, const jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $StringValuedMap$NullableType$<$K>(K); - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => Object.hash($StringValuedMap$Type$, K); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringValuedMap$Type$<$K>) && - other is $StringValuedMap$Type$<$K> && - K == other.K; - } } /// from: `com.github.dart_lang.jnigen.interfaces.GenericInterface` -class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - GenericInterface.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type GenericInterface<$T extends jni$_.JObject?>._( + jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/GenericInterface'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $GenericInterface$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $GenericInterface$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $GenericInterface$Type$(); static final _id_genericArrayOf = _class.instanceMethodId( r'genericArrayOf', r'(Ljava/lang/Object;)[Ljava/lang/Object;', @@ -6310,14 +3750,12 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public abstract U[] genericArrayOf(U object)` /// The returned object must be released after use, by calling the [release] method. jni$_.JArray<$U?>? genericArrayOf<$U extends jni$_.JObject?>( - $U? object, { - required jni$_.JType<$U> U, - }) { + $U? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _genericArrayOf(reference.pointer, _id_genericArrayOf as jni$_.JMethodIDPtr, _$object.pointer) - .object?>( - jni$_.$JArray$NullableType$<$U?>(U.nullableType)); + .object?>(); } static final _id_arrayOf = _class.instanceMethodId( @@ -6344,8 +3782,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { final _$object = object?.reference ?? jni$_.jNullReference; return _arrayOf(reference.pointer, _id_arrayOf as jni$_.JMethodIDPtr, _$object.pointer) - .object?>( - jni$_.$JArray$NullableType$<$T?>(T.nullableType)); + .object?>(); } static final _id_mapOf = _class.instanceMethodId( @@ -6374,15 +3811,13 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JMap<$T?, $U?>? mapOf<$U extends jni$_.JObject?>( $T? object, - $U? object1, { - required jni$_.JType<$U> U, - }) { + $U? object1, + ) { final _$object = object?.reference ?? jni$_.jNullReference; final _$object1 = object1?.reference ?? jni$_.jNullReference; return _mapOf(reference.pointer, _id_mapOf as jni$_.JMethodIDPtr, _$object.pointer, _$object1.pointer) - .object?>(jni$_.$JMap$NullableType$<$T?, $U?>( - T.nullableType, U.nullableType)); + .object?>(); } static final _id_firstOfGenericArray = _class.instanceMethodId( @@ -6404,13 +3839,12 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public abstract U firstOfGenericArray(U[] objects)` /// The returned object must be released after use, by calling the [release] method. $U? firstOfGenericArray<$U extends jni$_.JObject?>( - jni$_.JArray<$U?>? objects, { - required jni$_.JType<$U> U, - }) { + jni$_.JArray<$U?>? objects, + ) { final _$objects = objects?.reference ?? jni$_.jNullReference; return _firstOfGenericArray(reference.pointer, _id_firstOfGenericArray as jni$_.JMethodIDPtr, _$objects.pointer) - .object<$U?>(U.nullableType); + .object<$U?>(); } static final _id_firstOfArray = _class.instanceMethodId( @@ -6437,7 +3871,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { final _$objects = objects?.reference ?? jni$_.jNullReference; return _firstOfArray(reference.pointer, _id_firstOfArray as jni$_.JMethodIDPtr, _$objects.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstKeyOf = _class.instanceMethodId( @@ -6459,13 +3893,12 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public abstract T firstKeyOf(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $T? firstKeyOf<$U extends jni$_.JObject?>( - jni$_.JMap<$T?, $U?>? map, { - required jni$_.JType<$U> U, - }) { + jni$_.JMap<$T?, $U?>? map, + ) { final _$map = map?.reference ?? jni$_.jNullReference; return _firstKeyOf(reference.pointer, _id_firstKeyOf as jni$_.JMethodIDPtr, _$map.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstValueOf = _class.instanceMethodId( @@ -6487,13 +3920,12 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public abstract U firstValueOf(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $U? firstValueOf<$U extends jni$_.JObject?>( - jni$_.JMap<$T?, $U?>? map, { - required jni$_.JType<$U> U, - }) { + jni$_.JMap<$T?, $U?>? map, + ) { final _$map = map?.reference ?? jni$_.jNullReference; return _firstValueOf(reference.pointer, _id_firstValueOf as jni$_.JMethodIDPtr, _$map.pointer) - .object<$U?>(U.nullableType); + .object<$U?>(); } /// Maps a specific port to the implemented interface. @@ -6528,7 +3960,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { final $a = $i.args; if ($d == r'genericArrayOf(Ljava/lang/Object;)[Ljava/lang/Object;') { final $r = _$impls[$p]!.genericArrayOf( - $a![0]?.as(const jni$_.$JObject$Type$(), releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6538,7 +3970,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'arrayOf(Ljava/lang/Object;)[Ljava/lang/Object;') { final $r = _$impls[$p]!.arrayOf( - $a![0]?.as(_$impls[$p]!.T, releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6548,8 +3980,8 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'mapOf(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;') { final $r = _$impls[$p]!.mapOf( - $a![0]?.as(_$impls[$p]!.T, releaseOriginal: true), - $a![1]?.as(const jni$_.$JObject$Type$(), releaseOriginal: true), + $a![0], + $a![1], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6559,10 +3991,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'firstOfGenericArray([Ljava/lang/Object;)Ljava/lang/Object;') { final $r = _$impls[$p]!.firstOfGenericArray( - $a![0]?.as( - const jni$_.$JArray$Type$( - jni$_.$JObject$NullableType$()), - releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6572,10 +4001,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'firstOfArray([Ljava/lang/Object;)Ljava/lang/Object;') { final $r = _$impls[$p]!.firstOfArray( - $a![0]?.as( - const jni$_.$JArray$Type$( - jni$_.$JObject$NullableType$()), - releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6585,11 +4011,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'firstKeyOf(Ljava/util/Map;)Ljava/lang/Object;') { final $r = _$impls[$p]!.firstKeyOf( - $a![0]?.as( - const jni$_.$JMap$Type$( - jni$_.$JObject$NullableType$(), - jni$_.$JObject$NullableType$()), - releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6599,11 +4021,7 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'firstValueOf(Ljava/util/Map;)Ljava/lang/Object;') { final $r = _$impls[$p]!.firstValueOf( - $a![0]?.as( - const jni$_.$JMap$Type$( - jni$_.$JObject$NullableType$(), - jni$_.$JObject$NullableType$()), - releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -6647,16 +4065,12 @@ class GenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return GenericInterface<$T>.fromReference( - $impl.T, - $i.implementReference(), - ); + return $i.implement>(); } } abstract base mixin class $GenericInterface<$T extends jni$_.JObject?> { factory $GenericInterface({ - required jni$_.JType<$T> T, required jni$_.JArray? Function(jni$_.JObject? object) genericArrayOf, required jni$_.JArray? Function($T? object) arrayOf, @@ -6673,8 +4087,6 @@ abstract base mixin class $GenericInterface<$T extends jni$_.JObject?> { firstValueOf, }) = _$GenericInterface<$T>; - jni$_.JType<$T> get T; - jni$_.JArray? genericArrayOf(jni$_.JObject? object); jni$_.JArray? arrayOf($T? object); jni$_.JMap? mapOf( @@ -6688,7 +4100,6 @@ abstract base mixin class $GenericInterface<$T extends jni$_.JObject?> { final class _$GenericInterface<$T extends jni$_.JObject?> with $GenericInterface<$T> { _$GenericInterface({ - required this.T, required jni$_.JArray? Function(jni$_.JObject? object) genericArrayOf, required jni$_.JArray? Function($T? object) arrayOf, @@ -6711,9 +4122,6 @@ final class _$GenericInterface<$T extends jni$_.JObject?> _firstKeyOf = firstKeyOf, _firstValueOf = firstValueOf; - @core$_.override - final jni$_.JType<$T> T; - final jni$_.JArray? Function(jni$_.JObject? object) _genericArrayOf; final jni$_.JArray? Function($T? object) _arrayOf; @@ -6757,118 +4165,22 @@ final class _$GenericInterface<$T extends jni$_.JObject?> } } -final class $GenericInterface$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $GenericInterface$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/GenericInterface;'; - - @jni$_.internal - @core$_.override - GenericInterface<$T>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : GenericInterface<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GenericInterface$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GenericInterface$NullableType$<$T>) && - other is $GenericInterface$NullableType$<$T> && - T == other.T; - } -} - -final class $GenericInterface$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - +final class $GenericInterface$Type$ extends jni$_.JType { @jni$_.internal - const $GenericInterface$Type$( - this.T, - ); + const $GenericInterface$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/GenericInterface;'; - - @jni$_.internal - @core$_.override - GenericInterface<$T> fromReference(jni$_.JReference reference) => - GenericInterface<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GenericInterface$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($GenericInterface$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GenericInterface$Type$<$T>) && - other is $GenericInterface$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.interfaces.InheritedFromMyInterface` -class InheritedFromMyInterface extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - InheritedFromMyInterface.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type InheritedFromMyInterface._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/InheritedFromMyInterface'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $InheritedFromMyInterface$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $InheritedFromMyInterface$Type$(); @@ -6922,7 +4234,7 @@ class InheritedFromMyInterface extends jni$_.JObject { final _$string = string?.reference ?? jni$_.jNullReference; return _stringCallback(reference.pointer, _id_stringCallback as jni$_.JMethodIDPtr, _$string.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_varCallback = _class.instanceMethodId( @@ -6949,7 +4261,7 @@ class InheritedFromMyInterface extends jni$_.JObject { final _$object = object?.reference ?? jni$_.jNullReference; return _varCallback(reference.pointer, _id_varCallback as jni$_.JMethodIDPtr, _$object.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_manyPrimitives = _class.instanceMethodId( @@ -7017,13 +4329,13 @@ class InheritedFromMyInterface extends jni$_.JObject { final $a = $i.args; if ($d == r'voidCallback(Ljava/lang/String;)V') { _$impls[$p]!.voidCallback( - $a![0]?.as(const jni$_.$JString$Type$(), releaseOriginal: true), + $a![0], ); return jni$_.nullptr; } if ($d == r'stringCallback(Ljava/lang/String;)Ljava/lang/String;') { final $r = _$impls[$p]!.stringCallback( - $a![0]?.as(const jni$_.$JString$Type$(), releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -7033,7 +4345,7 @@ class InheritedFromMyInterface extends jni$_.JObject { } if ($d == r'varCallback(Ljava/lang/String;)Ljava/lang/String;') { final $r = _$impls[$p]!.varCallback( - $a![0]?.as(const jni$_.$JString$Type$(), releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -7043,18 +4355,10 @@ class InheritedFromMyInterface extends jni$_.JObject { } if ($d == r'manyPrimitives(IZCD)J') { final $r = _$impls[$p]!.manyPrimitives( - $a![0]! - .as(const jni$_.$JInteger$Type$(), releaseOriginal: true) - .intValue(releaseOriginal: true), - $a![1]! - .as(const jni$_.$JBoolean$Type$(), releaseOriginal: true) - .booleanValue(releaseOriginal: true), - $a![2]! - .as(const jni$_.$JCharacter$Type$(), releaseOriginal: true) - .charValue(releaseOriginal: true), - $a![3]! - .as(const jni$_.$JDouble$Type$(), releaseOriginal: true) - .doubleValue(releaseOriginal: true), + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + ($a![1] as jni$_.JBoolean).booleanValue(releaseOriginal: true), + ($a![2] as jni$_.JCharacter).charValue(releaseOriginal: true), + ($a![3] as jni$_.JDouble).doubleValue(releaseOriginal: true), ); return jni$_.JLong($r).reference.toPointer(); } @@ -7096,9 +4400,7 @@ class InheritedFromMyInterface extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return InheritedFromMyInterface.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -7153,46 +4455,6 @@ final class _$InheritedFromMyInterface with $InheritedFromMyInterface { } } -final class $InheritedFromMyInterface$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $InheritedFromMyInterface$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/InheritedFromMyInterface;'; - - @jni$_.internal - @core$_.override - InheritedFromMyInterface? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : InheritedFromMyInterface.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($InheritedFromMyInterface$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($InheritedFromMyInterface$NullableType$) && - other is $InheritedFromMyInterface$NullableType$; - } -} - final class $InheritedFromMyInterface$Type$ extends jni$_.JType { @jni$_.internal @@ -7202,55 +4464,14 @@ final class $InheritedFromMyInterface$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/InheritedFromMyInterface;'; - - @jni$_.internal - @core$_.override - InheritedFromMyInterface fromReference(jni$_.JReference reference) => - InheritedFromMyInterface.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $InheritedFromMyInterface$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($InheritedFromMyInterface$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($InheritedFromMyInterface$Type$) && - other is $InheritedFromMyInterface$Type$; - } } -/// from: `com.github.dart_lang.jnigen.interfaces.InheritedFromMyRunnable` -class InheritedFromMyRunnable extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - InheritedFromMyRunnable.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +/// from: `com.github.dart_lang.jnigen.interfaces.InheritedFromMyRunnable` +extension type InheritedFromMyRunnable._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/InheritedFromMyRunnable'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $InheritedFromMyRunnable$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $InheritedFromMyRunnable$Type$(); @@ -7348,9 +4569,7 @@ class InheritedFromMyRunnable extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return InheritedFromMyRunnable.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -7378,46 +4597,6 @@ final class _$InheritedFromMyRunnable with $InheritedFromMyRunnable { } } -final class $InheritedFromMyRunnable$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $InheritedFromMyRunnable$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/InheritedFromMyRunnable;'; - - @jni$_.internal - @core$_.override - InheritedFromMyRunnable? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : InheritedFromMyRunnable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($InheritedFromMyRunnable$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($InheritedFromMyRunnable$NullableType$) && - other is $InheritedFromMyRunnable$NullableType$; - } -} - final class $InheritedFromMyRunnable$Type$ extends jni$_.JType { @jni$_.internal @@ -7427,73 +4606,16 @@ final class $InheritedFromMyRunnable$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/InheritedFromMyRunnable;'; - - @jni$_.internal - @core$_.override - InheritedFromMyRunnable fromReference(jni$_.JReference reference) => - InheritedFromMyRunnable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $InheritedFromMyRunnable$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($InheritedFromMyRunnable$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($InheritedFromMyRunnable$Type$) && - other is $InheritedFromMyRunnable$Type$; - } } /// from: `com.github.dart_lang.jnigen.interfaces.MyInterface` -class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - MyInterface.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type MyInterface<$T extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/MyInterface'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $MyInterface$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $MyInterface$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $MyInterface$Type$(); static final _id_voidCallback = _class.instanceMethodId( r'voidCallback', r'(Ljava/lang/String;)V', @@ -7544,7 +4666,7 @@ class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { final _$string = string?.reference ?? jni$_.jNullReference; return _stringCallback(reference.pointer, _id_stringCallback as jni$_.JMethodIDPtr, _$string.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_varCallback = _class.instanceMethodId( @@ -7571,7 +4693,7 @@ class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { final _$object = object?.reference ?? jni$_.jNullReference; return _varCallback(reference.pointer, _id_varCallback as jni$_.JMethodIDPtr, _$object.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_manyPrimitives = _class.instanceMethodId( @@ -7639,13 +4761,13 @@ class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { final $a = $i.args; if ($d == r'voidCallback(Ljava/lang/String;)V') { _$impls[$p]!.voidCallback( - $a![0]?.as(const jni$_.$JString$Type$(), releaseOriginal: true), + $a![0], ); return jni$_.nullptr; } if ($d == r'stringCallback(Ljava/lang/String;)Ljava/lang/String;') { final $r = _$impls[$p]!.stringCallback( - $a![0]?.as(const jni$_.$JString$Type$(), releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -7655,7 +4777,7 @@ class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'varCallback(Ljava/lang/Object;)Ljava/lang/Object;') { final $r = _$impls[$p]!.varCallback( - $a![0]?.as(_$impls[$p]!.T, releaseOriginal: true), + $a![0], ); return ($r as jni$_.JObject?) ?.as(const jni$_.$JObject$Type$()) @@ -7665,18 +4787,10 @@ class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { } if ($d == r'manyPrimitives(IZCD)J') { final $r = _$impls[$p]!.manyPrimitives( - $a![0]! - .as(const jni$_.$JInteger$Type$(), releaseOriginal: true) - .intValue(releaseOriginal: true), - $a![1]! - .as(const jni$_.$JBoolean$Type$(), releaseOriginal: true) - .booleanValue(releaseOriginal: true), - $a![2]! - .as(const jni$_.$JCharacter$Type$(), releaseOriginal: true) - .charValue(releaseOriginal: true), - $a![3]! - .as(const jni$_.$JDouble$Type$(), releaseOriginal: true) - .doubleValue(releaseOriginal: true), + ($a![0] as jni$_.JInteger).intValue(releaseOriginal: true), + ($a![1] as jni$_.JBoolean).booleanValue(releaseOriginal: true), + ($a![2] as jni$_.JCharacter).charValue(releaseOriginal: true), + ($a![3] as jni$_.JDouble).doubleValue(releaseOriginal: true), ); return jni$_.JLong($r).reference.toPointer(); } @@ -7718,17 +4832,13 @@ class MyInterface<$T extends jni$_.JObject?> extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return MyInterface<$T>.fromReference( - $impl.T, - $i.implementReference(), - ); + return $i.implement>(); } static core$_.Map get $impls => _$impls; } abstract base mixin class $MyInterface<$T extends jni$_.JObject?> { factory $MyInterface({ - required jni$_.JType<$T> T, required void Function(jni$_.JString? string) voidCallback, bool voidCallback$async, required jni$_.JString? Function(jni$_.JString? string) stringCallback, @@ -7736,8 +4846,6 @@ abstract base mixin class $MyInterface<$T extends jni$_.JObject?> { required int Function(int i, bool z, int c, double d) manyPrimitives, }) = _$MyInterface<$T>; - jni$_.JType<$T> get T; - void voidCallback(jni$_.JString? string); bool get voidCallback$async => false; jni$_.JString? stringCallback(jni$_.JString? string); @@ -7747,7 +4855,6 @@ abstract base mixin class $MyInterface<$T extends jni$_.JObject?> { final class _$MyInterface<$T extends jni$_.JObject?> with $MyInterface<$T> { _$MyInterface({ - required this.T, required void Function(jni$_.JString? string) voidCallback, this.voidCallback$async = false, required jni$_.JString? Function(jni$_.JString? string) stringCallback, @@ -7758,9 +4865,6 @@ final class _$MyInterface<$T extends jni$_.JObject?> with $MyInterface<$T> { _varCallback = varCallback, _manyPrimitives = manyPrimitives; - @core$_.override - final jni$_.JType<$T> T; - final void Function(jni$_.JString? string) _voidCallback; final bool voidCallback$async; final jni$_.JString? Function(jni$_.JString? string) _stringCallback; @@ -7784,117 +4888,22 @@ final class _$MyInterface<$T extends jni$_.JObject?> with $MyInterface<$T> { } } -final class $MyInterface$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { +final class $MyInterface$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $MyInterface$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/MyInterface;'; - - @jni$_.internal - @core$_.override - MyInterface<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : MyInterface<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyInterface$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyInterface$NullableType$<$T>) && - other is $MyInterface$NullableType$<$T> && - T == other.T; - } -} - -final class $MyInterface$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $MyInterface$Type$( - this.T, - ); + const $MyInterface$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/MyInterface;'; - - @jni$_.internal - @core$_.override - MyInterface<$T> fromReference(jni$_.JReference reference) => - MyInterface<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $MyInterface$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($MyInterface$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyInterface$Type$<$T>) && - other is $MyInterface$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.interfaces.MyInterfaceConsumer` -class MyInterfaceConsumer extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - MyInterfaceConsumer.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type MyInterfaceConsumer._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/MyInterfaceConsumer'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $MyInterfaceConsumer$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $MyInterfaceConsumer$Type$(); @@ -7917,9 +4926,8 @@ class MyInterfaceConsumer extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory MyInterfaceConsumer() { - return MyInterfaceConsumer.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } static final _id_consumeOnAnotherThread = _class.staticMethodId( @@ -7962,9 +4970,8 @@ class MyInterfaceConsumer extends jni$_.JObject { bool z, int c, double d, - $T? object, { - required jni$_.JType<$T> T, - }) { + $T? object, + ) { final _$myInterface = myInterface?.reference ?? jni$_.jNullReference; final _$string = string?.reference ?? jni$_.jNullReference; final _$object = object?.reference ?? jni$_.jNullReference; @@ -8021,9 +5028,8 @@ class MyInterfaceConsumer extends jni$_.JObject { bool z, int c, double d, - $T? object, { - required jni$_.JType<$T> T, - }) { + $T? object, + ) { final _$myInterface = myInterface?.reference ?? jni$_.jNullReference; final _$string = string?.reference ?? jni$_.jNullReference; final _$object = object?.reference ?? jni$_.jNullReference; @@ -8041,46 +5047,6 @@ class MyInterfaceConsumer extends jni$_.JObject { } } -final class $MyInterfaceConsumer$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $MyInterfaceConsumer$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/MyInterfaceConsumer;'; - - @jni$_.internal - @core$_.override - MyInterfaceConsumer? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : MyInterfaceConsumer.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyInterfaceConsumer$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyInterfaceConsumer$NullableType$) && - other is $MyInterfaceConsumer$NullableType$; - } -} - final class $MyInterfaceConsumer$Type$ extends jni$_.JType { @jni$_.internal @@ -8090,55 +5056,13 @@ final class $MyInterfaceConsumer$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/MyInterfaceConsumer;'; - - @jni$_.internal - @core$_.override - MyInterfaceConsumer fromReference(jni$_.JReference reference) => - MyInterfaceConsumer.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $MyInterfaceConsumer$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyInterfaceConsumer$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyInterfaceConsumer$Type$) && - other is $MyInterfaceConsumer$Type$; - } } /// from: `com.github.dart_lang.jnigen.interfaces.MyRunnable` -class MyRunnable extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - MyRunnable.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type MyRunnable._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/MyRunnable'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $MyRunnable$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $MyRunnable$Type$(); static final _id_run = _class.instanceMethodId( @@ -8235,9 +5159,7 @@ class MyRunnable extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return MyRunnable.fromReference( - $i.implementReference(), - ); + return $i.implement(); } static core$_.Map get $impls => _$impls; } @@ -8266,44 +5188,6 @@ final class _$MyRunnable with $MyRunnable { } } -final class $MyRunnable$NullableType$ extends jni$_.JType { - @jni$_.internal - const $MyRunnable$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/MyRunnable;'; - - @jni$_.internal - @core$_.override - MyRunnable? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : MyRunnable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyRunnable$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyRunnable$NullableType$) && - other is $MyRunnable$NullableType$; - } -} - final class $MyRunnable$Type$ extends jni$_.JType { @jni$_.internal const $MyRunnable$Type$(); @@ -8312,55 +5196,14 @@ final class $MyRunnable$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/MyRunnable;'; - - @jni$_.internal - @core$_.override - MyRunnable fromReference(jni$_.JReference reference) => - MyRunnable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $MyRunnable$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyRunnable$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyRunnable$Type$) && - other is $MyRunnable$Type$; - } } /// from: `com.github.dart_lang.jnigen.interfaces.MyRunnableRunner` -class MyRunnableRunner extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - MyRunnableRunner.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type MyRunnableRunner._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/MyRunnableRunner'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $MyRunnableRunner$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $MyRunnableRunner$Type$(); static final _id_error = _class.instanceFieldId( @@ -8399,9 +5242,9 @@ class MyRunnableRunner extends jni$_.JObject { MyRunnable? myRunnable, ) { final _$myRunnable = myRunnable?.reference ?? jni$_.jNullReference; - return MyRunnableRunner.fromReference(_new$(_class.reference.pointer, - _id_new$ as jni$_.JMethodIDPtr, _$myRunnable.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$myRunnable.pointer) + .object(); } static final _id_runOnSameThread = _class.instanceMethodId( @@ -8458,62 +5301,22 @@ class MyRunnableRunner extends jni$_.JObject { ); static final _runOnAnotherThreadAndJoin = jni$_.ProtectedJniExtensions.lookup< - jni$_.NativeFunction< - jni$_.JThrowablePtr Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - )>>('globalEnv_CallVoidMethod') - .asFunction< - jni$_.JThrowablePtr Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - )>(); - - /// from: `public void runOnAnotherThreadAndJoin()` - void runOnAnotherThreadAndJoin() { - _runOnAnotherThreadAndJoin(reference.pointer, - _id_runOnAnotherThreadAndJoin as jni$_.JMethodIDPtr) - .check(); - } -} - -final class $MyRunnableRunner$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $MyRunnableRunner$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/MyRunnableRunner;'; - - @jni$_.internal - @core$_.override - MyRunnableRunner? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : MyRunnableRunner.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyRunnableRunner$NullableType$).hashCode; + jni$_.NativeFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_CallVoidMethod') + .asFunction< + jni$_.JThrowablePtr Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyRunnableRunner$NullableType$) && - other is $MyRunnableRunner$NullableType$; + /// from: `public void runOnAnotherThreadAndJoin()` + void runOnAnotherThreadAndJoin() { + _runOnAnotherThreadAndJoin(reference.pointer, + _id_runOnAnotherThreadAndJoin as jni$_.JMethodIDPtr) + .check(); } } @@ -8525,55 +5328,14 @@ final class $MyRunnableRunner$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/MyRunnableRunner;'; - - @jni$_.internal - @core$_.override - MyRunnableRunner fromReference(jni$_.JReference reference) => - MyRunnableRunner.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $MyRunnableRunner$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyRunnableRunner$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyRunnableRunner$Type$) && - other is $MyRunnableRunner$Type$; - } } /// from: `com.github.dart_lang.jnigen.interfaces.StringConversionException` -class StringConversionException extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - StringConversionException.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type StringConversionException._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/StringConversionException'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $StringConversionException$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $StringConversionException$Type$(); @@ -8598,51 +5360,9 @@ class StringConversionException extends jni$_.JObject { jni$_.JString? string, ) { final _$string = string?.reference ?? jni$_.jNullReference; - return StringConversionException.fromReference(_new$( - _class.reference.pointer, - _id_new$ as jni$_.JMethodIDPtr, + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, _$string.pointer) - .reference); - } -} - -final class $StringConversionException$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $StringConversionException$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/StringConversionException;'; - - @jni$_.internal - @core$_.override - StringConversionException? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : StringConversionException.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($StringConversionException$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringConversionException$NullableType$) && - other is $StringConversionException$NullableType$; + .object(); } } @@ -8655,55 +5375,14 @@ final class $StringConversionException$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/StringConversionException;'; - - @jni$_.internal - @core$_.override - StringConversionException fromReference(jni$_.JReference reference) => - StringConversionException.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $StringConversionException$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($StringConversionException$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringConversionException$Type$) && - other is $StringConversionException$Type$; - } } /// from: `com.github.dart_lang.jnigen.interfaces.StringConverter` -class StringConverter extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - StringConverter.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type StringConverter._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/StringConverter'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $StringConverter$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $StringConverter$Type$(); static final _id_parseToInt = _class.instanceMethodId( @@ -8764,7 +5443,7 @@ class StringConverter extends jni$_.JObject { final $a = $i.args; if ($d == r'parseToInt(Ljava/lang/String;)I') { final $r = _$impls[$p]!.parseToInt( - $a![0]?.as(const jni$_.$JString$Type$(), releaseOriginal: true), + $a![0], ); return jni$_.JInteger($r).reference.toPointer(); } @@ -8804,9 +5483,7 @@ class StringConverter extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return StringConverter.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -8830,45 +5507,6 @@ final class _$StringConverter with $StringConverter { } } -final class $StringConverter$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $StringConverter$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/StringConverter;'; - - @jni$_.internal - @core$_.override - StringConverter? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : StringConverter.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($StringConverter$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringConverter$NullableType$) && - other is $StringConverter$NullableType$; - } -} - final class $StringConverter$Type$ extends jni$_.JType { @jni$_.internal const $StringConverter$Type$(); @@ -8877,55 +5515,14 @@ final class $StringConverter$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/StringConverter;'; - - @jni$_.internal - @core$_.override - StringConverter fromReference(jni$_.JReference reference) => - StringConverter.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $StringConverter$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($StringConverter$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringConverter$Type$) && - other is $StringConverter$Type$; - } } /// from: `com.github.dart_lang.jnigen.interfaces.StringConverterConsumer` -class StringConverterConsumer extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - StringConverterConsumer.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type StringConverterConsumer._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/interfaces/StringConverterConsumer'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $StringConverterConsumer$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $StringConverterConsumer$Type$(); @@ -8948,9 +5545,8 @@ class StringConverterConsumer extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory StringConverterConsumer() { - return StringConverterConsumer.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } static final _id_consumeOnSameThread = _class.staticMethodId( @@ -8989,7 +5585,7 @@ class StringConverterConsumer extends jni$_.JObject { _id_consumeOnSameThread as jni$_.JMethodIDPtr, _$stringConverter.pointer, _$string.pointer) - .object(const jni$_.$JInteger$NullableType$()); + .object(); } static final _id_consumeOnAnotherThread = _class.staticMethodId( @@ -9028,47 +5624,7 @@ class StringConverterConsumer extends jni$_.JObject { _id_consumeOnAnotherThread as jni$_.JMethodIDPtr, _$stringConverter.pointer, _$string.pointer) - .object(const jni$_.$JObject$NullableType$()); - } -} - -final class $StringConverterConsumer$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $StringConverterConsumer$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/interfaces/StringConverterConsumer;'; - - @jni$_.internal - @core$_.override - StringConverterConsumer? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : StringConverterConsumer.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($StringConverterConsumer$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringConverterConsumer$NullableType$) && - other is $StringConverterConsumer$NullableType$; + .object(); } } @@ -9081,73 +5637,16 @@ final class $StringConverterConsumer$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/interfaces/StringConverterConsumer;'; - - @jni$_.internal - @core$_.override - StringConverterConsumer fromReference(jni$_.JReference reference) => - StringConverterConsumer.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $StringConverterConsumer$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($StringConverterConsumer$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($StringConverterConsumer$Type$) && - other is $StringConverterConsumer$Type$; - } } /// from: `com.github.dart_lang.jnigen.inheritance.BaseClass` -class BaseClass<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - BaseClass.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type BaseClass<$T extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/inheritance/BaseClass'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $BaseClass$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $BaseClass$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $BaseClass$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -9166,146 +5665,31 @@ class BaseClass<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory BaseClass({ - required jni$_.JType<$T> T, - }) { - return BaseClass<$T>.fromReference( - T, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + factory BaseClass() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } } -final class $BaseClass$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { +final class $BaseClass$Type$ extends jni$_.JType { @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $BaseClass$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/BaseClass;'; - - @jni$_.internal - @core$_.override - BaseClass<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : BaseClass<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($BaseClass$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($BaseClass$NullableType$<$T>) && - other is $BaseClass$NullableType$<$T> && - T == other.T; - } -} - -final class $BaseClass$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $BaseClass$Type$( - this.T, - ); + const $BaseClass$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/inheritance/BaseClass;'; - - @jni$_.internal - @core$_.override - BaseClass<$T> fromReference(jni$_.JReference reference) => - BaseClass<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $BaseClass$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($BaseClass$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($BaseClass$Type$<$T>) && - other is $BaseClass$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.inheritance.BaseGenericInterface` -class BaseGenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - BaseGenericInterface.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type BaseGenericInterface<$T extends jni$_.JObject?>._( + jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/inheritance/BaseGenericInterface'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $BaseGenericInterface$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $BaseGenericInterface$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = + $BaseGenericInterface$Type$(); static final _id_foo = _class.instanceMethodId( r'foo', r'()Ljava/lang/Object;', @@ -9326,8 +5710,7 @@ class BaseGenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public abstract T foo()` /// The returned object must be released after use, by calling the [release] method. $T? foo() { - return _foo(reference.pointer, _id_foo as jni$_.JMethodIDPtr) - .object<$T?>(T.nullableType); + return _foo(reference.pointer, _id_foo as jni$_.JMethodIDPtr).object<$T?>(); } /// Maps a specific port to the implemented interface. @@ -9404,34 +5787,24 @@ class BaseGenericInterface<$T extends jni$_.JObject?> extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return BaseGenericInterface<$T>.fromReference( - $impl.T, - $i.implementReference(), - ); + return $i.implement>(); } } abstract base mixin class $BaseGenericInterface<$T extends jni$_.JObject?> { factory $BaseGenericInterface({ - required jni$_.JType<$T> T, required $T? Function() foo, }) = _$BaseGenericInterface<$T>; - jni$_.JType<$T> get T; - $T? foo(); } final class _$BaseGenericInterface<$T extends jni$_.JObject?> with $BaseGenericInterface<$T> { _$BaseGenericInterface({ - required this.T, required $T? Function() foo, }) : _foo = foo; - @core$_.override - final jni$_.JType<$T> T; - final $T? Function() _foo; $T? foo() { @@ -9439,118 +5812,22 @@ final class _$BaseGenericInterface<$T extends jni$_.JObject?> } } -final class $BaseGenericInterface$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $BaseGenericInterface$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/BaseGenericInterface;'; - - @jni$_.internal - @core$_.override - BaseGenericInterface<$T>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : BaseGenericInterface<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($BaseGenericInterface$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($BaseGenericInterface$NullableType$<$T>) && - other is $BaseGenericInterface$NullableType$<$T> && - T == other.T; - } -} - -final class $BaseGenericInterface$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - +final class $BaseGenericInterface$Type$ + extends jni$_.JType { @jni$_.internal - const $BaseGenericInterface$Type$( - this.T, - ); + const $BaseGenericInterface$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/inheritance/BaseGenericInterface;'; - - @jni$_.internal - @core$_.override - BaseGenericInterface<$T> fromReference(jni$_.JReference reference) => - BaseGenericInterface<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $BaseGenericInterface$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($BaseGenericInterface$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($BaseGenericInterface$Type$<$T>) && - other is $BaseGenericInterface$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.inheritance.BaseInterface` -class BaseInterface extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - BaseInterface.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type BaseInterface._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/inheritance/BaseInterface'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $BaseInterface$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $BaseInterface$Type$(); static final _id_foo = _class.instanceMethodId( @@ -9574,7 +5851,7 @@ class BaseInterface extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JString? foo() { return _foo(reference.pointer, _id_foo as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$NullableType$()); + .object(); } /// Maps a specific port to the implemented interface. @@ -9651,9 +5928,7 @@ class BaseInterface extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return BaseInterface.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -9677,44 +5952,6 @@ final class _$BaseInterface with $BaseInterface { } } -final class $BaseInterface$NullableType$ extends jni$_.JType { - @jni$_.internal - const $BaseInterface$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/BaseInterface;'; - - @jni$_.internal - @core$_.override - BaseInterface? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : BaseInterface.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($BaseInterface$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($BaseInterface$NullableType$) && - other is $BaseInterface$NullableType$; - } -} - final class $BaseInterface$Type$ extends jni$_.JType { @jni$_.internal const $BaseInterface$Type$(); @@ -9723,55 +5960,14 @@ final class $BaseInterface$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/inheritance/BaseInterface;'; - - @jni$_.internal - @core$_.override - BaseInterface fromReference(jni$_.JReference reference) => - BaseInterface.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $BaseInterface$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($BaseInterface$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($BaseInterface$Type$) && - other is $BaseInterface$Type$; - } } /// from: `com.github.dart_lang.jnigen.inheritance.DerivedInterface` -class DerivedInterface extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - DerivedInterface.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type DerivedInterface._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/inheritance/DerivedInterface'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $DerivedInterface$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $DerivedInterface$Type$(); static final _id_foo = _class.instanceMethodId( @@ -9795,7 +5991,7 @@ class DerivedInterface extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. jni$_.JString? foo() { return _foo(reference.pointer, _id_foo as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$NullableType$()); + .object(); } /// Maps a specific port to the implemented interface. @@ -9872,9 +6068,7 @@ class DerivedInterface extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return DerivedInterface.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -9888,275 +6082,35 @@ abstract base mixin class $DerivedInterface { final class _$DerivedInterface with $DerivedInterface { _$DerivedInterface({ - required jni$_.JString? Function() foo, - }) : _foo = foo; - - final jni$_.JString? Function() _foo; - - jni$_.JString? foo() { - return _foo(); - } -} - -final class $DerivedInterface$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $DerivedInterface$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/DerivedInterface;'; - - @jni$_.internal - @core$_.override - DerivedInterface? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : DerivedInterface.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($DerivedInterface$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($DerivedInterface$NullableType$) && - other is $DerivedInterface$NullableType$; - } -} - -final class $DerivedInterface$Type$ extends jni$_.JType { - @jni$_.internal - const $DerivedInterface$Type$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/DerivedInterface;'; - - @jni$_.internal - @core$_.override - DerivedInterface fromReference(jni$_.JReference reference) => - DerivedInterface.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $DerivedInterface$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($DerivedInterface$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($DerivedInterface$Type$) && - other is $DerivedInterface$Type$; - } -} - -/// from: `com.github.dart_lang.jnigen.inheritance.GenericDerivedClass` -class GenericDerivedClass<$T extends jni$_.JObject?> extends BaseClass<$T?> { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - GenericDerivedClass.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(T.nullableType, reference); - - static final _class = jni$_.JClass.forName( - r'com/github/dart_lang/jnigen/inheritance/GenericDerivedClass'); - - /// The type which includes information such as the signature of this class. - static jni$_.JType?> - nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $GenericDerivedClass$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $GenericDerivedClass$Type$<$T>( - T, - ); - } - - static final _id_new$ = _class.constructorId( - r'()V', - ); - - static final _new$ = jni$_.ProtectedJniExtensions.lookup< - jni$_.NativeFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - )>>('globalEnv_NewObject') - .asFunction< - jni$_.JniResult Function( - jni$_.Pointer, - jni$_.JMethodIDPtr, - )>(); - - /// from: `public void ()` - /// The returned object must be released after use, by calling the [release] method. - factory GenericDerivedClass({ - required jni$_.JType<$T> T, - }) { - return GenericDerivedClass<$T>.fromReference( - T, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $GenericDerivedClass$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $GenericDerivedClass$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/GenericDerivedClass;'; - - @jni$_.internal - @core$_.override - GenericDerivedClass<$T>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : GenericDerivedClass<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => $BaseClass$NullableType$<$T?>(T.nullableType); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => Object.hash($GenericDerivedClass$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GenericDerivedClass$NullableType$<$T>) && - other is $GenericDerivedClass$NullableType$<$T> && - T == other.T; - } -} - -final class $GenericDerivedClass$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $GenericDerivedClass$Type$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/GenericDerivedClass;'; - - @jni$_.internal - @core$_.override - GenericDerivedClass<$T> fromReference(jni$_.JReference reference) => - GenericDerivedClass<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => $BaseClass$NullableType$<$T?>(T.nullableType); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $GenericDerivedClass$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 2; + required jni$_.JString? Function() foo, + }) : _foo = foo; - @core$_.override - int get hashCode => Object.hash($GenericDerivedClass$Type$, T); + final jni$_.JString? Function() _foo; - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($GenericDerivedClass$Type$<$T>) && - other is $GenericDerivedClass$Type$<$T> && - T == other.T; + jni$_.JString? foo() { + return _foo(); } } -/// from: `com.github.dart_lang.jnigen.inheritance.SpecificDerivedClass` -class SpecificDerivedClass extends BaseClass { +final class $DerivedInterface$Type$ extends jni$_.JType { @jni$_.internal - @core$_.override - final jni$_.JType $type; + const $DerivedInterface$Type$(); @jni$_.internal - SpecificDerivedClass.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(const jni$_.$JString$NullableType$(), reference); + @core$_.override + String get signature => + r'Lcom/github/dart_lang/jnigen/inheritance/DerivedInterface;'; +} +/// from: `com.github.dart_lang.jnigen.inheritance.GenericDerivedClass` +extension type GenericDerivedClass<$T extends jni$_.JObject?>._( + jni$_.JObject _$this) implements BaseClass<$T?> { static final _class = jni$_.JClass.forName( - r'com/github/dart_lang/jnigen/inheritance/SpecificDerivedClass'); - - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $SpecificDerivedClass$NullableType$(); + r'com/github/dart_lang/jnigen/inheritance/GenericDerivedClass'); /// The type which includes information such as the signature of this class. - static const jni$_.JType type = - $SpecificDerivedClass$Type$(); + static const jni$_.JType type = + $GenericDerivedClass$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -10175,51 +6129,53 @@ class SpecificDerivedClass extends BaseClass { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory SpecificDerivedClass() { - return SpecificDerivedClass.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); + factory GenericDerivedClass() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } } -final class $SpecificDerivedClass$NullableType$ - extends jni$_.JType { +final class $GenericDerivedClass$Type$ + extends jni$_.JType { @jni$_.internal - const $SpecificDerivedClass$NullableType$(); + const $GenericDerivedClass$Type$(); @jni$_.internal @core$_.override String get signature => - r'Lcom/github/dart_lang/jnigen/inheritance/SpecificDerivedClass;'; - - @jni$_.internal - @core$_.override - SpecificDerivedClass? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : SpecificDerivedClass.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const $BaseClass$NullableType$( - jni$_.$JString$NullableType$()); + r'Lcom/github/dart_lang/jnigen/inheritance/GenericDerivedClass;'; +} - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; +/// from: `com.github.dart_lang.jnigen.inheritance.SpecificDerivedClass` +extension type SpecificDerivedClass._(jni$_.JObject _$this) + implements BaseClass { + static final _class = jni$_.JClass.forName( + r'com/github/dart_lang/jnigen/inheritance/SpecificDerivedClass'); - @jni$_.internal - @core$_.override - final superCount = 2; + /// The type which includes information such as the signature of this class. + static const jni$_.JType type = + $SpecificDerivedClass$Type$(); + static final _id_new$ = _class.constructorId( + r'()V', + ); - @core$_.override - int get hashCode => ($SpecificDerivedClass$NullableType$).hashCode; + static final _new$ = jni$_.ProtectedJniExtensions.lookup< + jni$_.NativeFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>>('globalEnv_NewObject') + .asFunction< + jni$_.JniResult Function( + jni$_.Pointer, + jni$_.JMethodIDPtr, + )>(); - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($SpecificDerivedClass$NullableType$) && - other is $SpecificDerivedClass$NullableType$; + /// from: `public void ()` + /// The returned object must be released after use, by calling the [release] method. + factory SpecificDerivedClass() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -10232,107 +6188,20 @@ final class $SpecificDerivedClass$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/inheritance/SpecificDerivedClass;'; - - @jni$_.internal - @core$_.override - SpecificDerivedClass fromReference(jni$_.JReference reference) => - SpecificDerivedClass.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const $BaseClass$NullableType$( - jni$_.$JString$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $SpecificDerivedClass$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => ($SpecificDerivedClass$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($SpecificDerivedClass$Type$) && - other is $SpecificDerivedClass$Type$; - } } /// from: `com.github.dart_lang.jnigen.annotations.Annotated$Nested` -class Annotated$Nested<$T extends jni$_.JObject?, $U extends jni$_.JObject, - $W extends jni$_.JObject, $V extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$W> W; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - Annotated$Nested.fromReference( - this.T, - this.U, - this.W, - this.V, - jni$_.JReference reference, - ) : $type = type<$T, $U, $W, $V>(T, U, W, V), - super.fromReference(reference); - +extension type Annotated$Nested< + $T extends jni$_.JObject?, + $U extends jni$_.JObject, + $W extends jni$_.JObject, + $V extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/annotations/Annotated$Nested'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject, - $V extends jni$_.JObject?>( - jni$_.JType<$T> T, - jni$_.JType<$U> U, - jni$_.JType<$W> W, - jni$_.JType<$V> V, - ) { - return $Annotated$Nested$NullableType$<$T, $U, $W, $V>( - T, - U, - W, - V, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject, - $V extends jni$_.JObject?>( - jni$_.JType<$T> T, - jni$_.JType<$U> U, - jni$_.JType<$W> W, - jni$_.JType<$V> V, - ) { - return $Annotated$Nested$Type$<$T, $U, $W, $V>( - T, - U, - W, - V, - ); - } - + static const jni$_.JType type = $Annotated$Nested$Type$(); static final _id_v = _class.instanceFieldId( r'v', r'Ljava/lang/Object;', @@ -10340,11 +6209,12 @@ class Annotated$Nested<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V v` /// The returned object must be released after use, by calling the [release] method. - $V? get v => _id_v.get(this, V.nullableType); + $V? get v => _id_v.get(this, const jni$_.$JObject$NullableType$()); /// from: `public V v` /// The returned object must be released after use, by calling the [release] method. - set v($V? value) => _id_v.set(this, V.nullableType, value); + set v($V? value) => + _id_v.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_u = _class.instanceFieldId( r'u', @@ -10353,11 +6223,11 @@ class Annotated$Nested<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public U u` /// The returned object must be released after use, by calling the [release] method. - $U get u => _id_u.get(this, U); + $U get u => _id_u.get(this, const jni$_.$JObject$Type$()); /// from: `public U u` /// The returned object must be released after use, by calling the [release] method. - set u($U value) => _id_u.set(this, U, value); + set u($U value) => _id_u.set(this, const jni$_.$JObject$Type$(), value); static final _id_new$ = _class.constructorId( r'(Lcom/github/dart_lang/jnigen/annotations/Annotated;Ljava/lang/Object;)V', @@ -10384,236 +6254,34 @@ class Annotated$Nested<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. factory Annotated$Nested( Annotated<$T?, $U, $W> $outerClass, - $V? object, { - jni$_.JType<$T>? T, - jni$_.JType<$U>? U, - jni$_.JType<$W>? W, - required jni$_.JType<$V> V, - }) { - T ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $Annotated$Type$) - .T, - ]) as jni$_.JType<$T>; - U ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $Annotated$Type$) - .U, - ]) as jni$_.JType<$U>; - W ??= jni$_.lowestCommonSuperType([ - ($outerClass.$type as $Annotated$Type$) - .W, - ]) as jni$_.JType<$W>; + $V? object, + ) { final _$$outerClass = $outerClass.reference; final _$object = object?.reference ?? jni$_.jNullReference; - return Annotated$Nested<$T, $U, $W, $V>.fromReference( - T, - U, - W, - V, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$$outerClass.pointer, _$object.pointer) - .reference); - } -} - -final class $Annotated$Nested$NullableType$< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject, - $V extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$W> W; - - @jni$_.internal - final jni$_.JType<$V> V; - - @jni$_.internal - const $Annotated$Nested$NullableType$( - this.T, - this.U, - this.W, - this.V, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/annotations/Annotated$Nested;'; - - @jni$_.internal - @core$_.override - Annotated$Nested<$T, $U, $W, $V>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : Annotated$Nested<$T, $U, $W, $V>.fromReference( - T, - U, - W, - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($Annotated$Nested$NullableType$, T, U, W, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == - ($Annotated$Nested$NullableType$<$T, $U, $W, $V>) && - other is $Annotated$Nested$NullableType$<$T, $U, $W, $V> && - T == other.T && - U == other.U && - W == other.W && - V == other.V; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$$outerClass.pointer, _$object.pointer) + .object>(); } } -final class $Annotated$Nested$Type$< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject, - $V extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$W> W; - - @jni$_.internal - final jni$_.JType<$V> V; - +final class $Annotated$Nested$Type$ extends jni$_.JType { @jni$_.internal - const $Annotated$Nested$Type$( - this.T, - this.U, - this.W, - this.V, - ); + const $Annotated$Nested$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/Annotated$Nested;'; - - @jni$_.internal - @core$_.override - Annotated$Nested<$T, $U, $W, $V> fromReference(jni$_.JReference reference) => - Annotated$Nested<$T, $U, $W, $V>.fromReference( - T, - U, - W, - V, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $Annotated$Nested$NullableType$<$T, $U, $W, $V>(T, U, W, V); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($Annotated$Nested$Type$, T, U, W, V); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Annotated$Nested$Type$<$T, $U, $W, $V>) && - other is $Annotated$Nested$Type$<$T, $U, $W, $V> && - T == other.T && - U == other.U && - W == other.W && - V == other.V; - } } /// from: `com.github.dart_lang.jnigen.annotations.Annotated` -class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, - $W extends jni$_.JObject> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$W> W; - - @jni$_.internal - Annotated.fromReference( - this.T, - this.U, - this.W, - jni$_.JReference reference, - ) : $type = type<$T, $U, $W>(T, U, W), - super.fromReference(reference); - +extension type Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, + $W extends jni$_.JObject>._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/annotations/Annotated'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject>( - jni$_.JType<$T> T, - jni$_.JType<$U> U, - jni$_.JType<$W> W, - ) { - return $Annotated$NullableType$<$T, $U, $W>( - T, - U, - W, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?, - $U extends jni$_.JObject, $W extends jni$_.JObject>( - jni$_.JType<$T> T, - jni$_.JType<$U> U, - jni$_.JType<$W> W, - ) { - return $Annotated$Type$<$T, $U, $W>( - T, - U, - W, - ); - } - + static const jni$_.JType type = $Annotated$Type$(); static final _id_t = _class.instanceFieldId( r't', r'Ljava/lang/Object;', @@ -10621,11 +6289,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public T t` /// The returned object must be released after use, by calling the [release] method. - $T? get t => _id_t.get(this, T.nullableType); + $T? get t => _id_t.get(this, const jni$_.$JObject$NullableType$()); /// from: `public T t` /// The returned object must be released after use, by calling the [release] method. - set t($T? value) => _id_t.set(this, T.nullableType, value); + set t($T? value) => + _id_t.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_u = _class.instanceFieldId( r'u', @@ -10634,11 +6303,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public U u` /// The returned object must be released after use, by calling the [release] method. - $U get u => _id_u.get(this, U); + $U get u => _id_u.get(this, const jni$_.$JObject$NullableType$()); /// from: `public U u` /// The returned object must be released after use, by calling the [release] method. - set u($U value) => _id_u.set(this, U, value); + set u($U value) => + _id_u.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_w = _class.instanceFieldId( r'w', @@ -10647,11 +6317,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public W w` /// The returned object must be released after use, by calling the [release] method. - $W get w => _id_w.get(this, W); + $W get w => _id_w.get(this, const jni$_.$JObject$NullableType$()); /// from: `public W w` /// The returned object must be released after use, by calling the [release] method. - set w($W value) => _id_w.set(this, W, value); + set w($W value) => + _id_w.set(this, const jni$_.$JObject$NullableType$(), value); static final _id_new$ = _class.constructorId( r'(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V', @@ -10681,27 +6352,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, factory Annotated( $T? object, $U object1, - $W object2, { - required jni$_.JType<$T> T, - jni$_.JType<$U>? U, - jni$_.JType<$W>? W, - }) { - U ??= jni$_.lowestCommonSuperType([ - object1.$type, - ]) as jni$_.JType<$U>; - W ??= jni$_.lowestCommonSuperType([ - object2.$type, - ]) as jni$_.JType<$W>; + $W object2, + ) { final _$object = object?.reference ?? jni$_.jNullReference; final _$object1 = object1.reference; final _$object2 = object2.reference; - return Annotated<$T, $U, $W>.fromReference( - T, - U, - W, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, - _$object.pointer, _$object1.pointer, _$object2.pointer) - .reference); + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr, + _$object.pointer, _$object1.pointer, _$object2.pointer) + .object>(); } static final _id_staticHello = _class.staticMethodId( @@ -10726,7 +6384,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, static jni$_.JString staticHello() { return _staticHello( _class.reference.pointer, _id_staticHello as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_hello = _class.instanceMethodId( @@ -10750,7 +6408,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JString hello() { return _hello(reference.pointer, _id_hello as jni$_.JMethodIDPtr) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_nullableHello = _class.instanceMethodId( @@ -10775,7 +6433,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableHello(reference.pointer, _id_nullableHello as jni$_.JMethodIDPtr, z ? 1 : 0) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_echo = _class.instanceMethodId( @@ -10802,7 +6460,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, final _$string = string.reference; return _echo( reference.pointer, _id_echo as jni$_.JMethodIDPtr, _$string.pointer) - .object(const jni$_.$JString$Type$()); + .object(); } static final _id_nullableEcho = _class.instanceMethodId( @@ -10829,7 +6487,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, final _$string = string?.reference ?? jni$_.jNullReference; return _nullableEcho(reference.pointer, _id_nullableEcho as jni$_.JMethodIDPtr, _$string.pointer) - .object(const jni$_.$JString$NullableType$()); + .object(); } static final _id_array = _class.instanceMethodId( @@ -10853,8 +6511,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JArray array() { return _array(reference.pointer, _id_array as jni$_.JMethodIDPtr) - .object>( - const jni$_.$JArray$Type$(jni$_.$JString$Type$())); + .object>(); } static final _id_arrayOfNullable = _class.instanceMethodId( @@ -10879,9 +6536,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, jni$_.JArray arrayOfNullable() { return _arrayOfNullable( reference.pointer, _id_arrayOfNullable as jni$_.JMethodIDPtr) - .object>( - const jni$_.$JArray$Type$( - jni$_.$JString$NullableType$())); + .object>(); } static final _id_nullableArray = _class.instanceMethodId( @@ -10906,9 +6561,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableArray(reference.pointer, _id_nullableArray as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>( - const jni$_.$JArray$NullableType$( - jni$_.$JString$Type$())); + .object?>(); } static final _id_nullableArrayOfNullable = _class.instanceMethodId( @@ -10933,9 +6586,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableArrayOfNullable(reference.pointer, _id_nullableArrayOfNullable as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>( - const jni$_.$JArray$NullableType$( - jni$_.$JString$NullableType$())); + .object?>(); } static final _id_list = _class.instanceMethodId( @@ -10959,8 +6610,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JList list() { return _list(reference.pointer, _id_list as jni$_.JMethodIDPtr) - .object>( - const jni$_.$JList$Type$(jni$_.$JString$Type$())); + .object>(); } static final _id_listOfNullable = _class.instanceMethodId( @@ -10985,9 +6635,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, jni$_.JList listOfNullable() { return _listOfNullable( reference.pointer, _id_listOfNullable as jni$_.JMethodIDPtr) - .object>( - const jni$_.$JList$Type$( - jni$_.$JString$NullableType$())); + .object>(); } static final _id_nullableList = _class.instanceMethodId( @@ -11012,9 +6660,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableList(reference.pointer, _id_nullableList as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>( - const jni$_.$JList$NullableType$( - jni$_.$JString$Type$())); + .object?>(); } static final _id_nullableListOfNullable = _class.instanceMethodId( @@ -11039,9 +6685,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableListOfNullable(reference.pointer, _id_nullableListOfNullable as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>( - const jni$_.$JList$NullableType$( - jni$_.$JString$NullableType$())); + .object?>(); } static final _id_classGenericEcho = _class.instanceMethodId( @@ -11068,7 +6712,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, final _$object = object?.reference ?? jni$_.jNullReference; return _classGenericEcho(reference.pointer, _id_classGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$T>(T); + .object<$T>(); } static final _id_nullableClassGenericEcho = _class.instanceMethodId( @@ -11097,7 +6741,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, reference.pointer, _id_nullableClassGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_methodGenericEcho = _class.instanceMethodId( @@ -11119,13 +6763,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V methodGenericEcho(V object)` /// The returned object must be released after use, by calling the [release] method. $V methodGenericEcho<$V extends jni$_.JObject?>( - $V object, { - required jni$_.JType<$V> V, - }) { + $V object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _methodGenericEcho(reference.pointer, _id_methodGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_methodGenericEcho2 = _class.instanceMethodId( @@ -11147,16 +6790,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V methodGenericEcho2(V object)` /// The returned object must be released after use, by calling the [release] method. $V methodGenericEcho2<$V extends jni$_.JObject>( - $V object, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - object.$type, - ]) as jni$_.JType<$V>; + $V object, + ) { final _$object = object.reference; return _methodGenericEcho2(reference.pointer, _id_methodGenericEcho2 as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_methodGenericEcho3 = _class.instanceMethodId( @@ -11178,16 +6817,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V methodGenericEcho3(V object)` /// The returned object must be released after use, by calling the [release] method. $V methodGenericEcho3<$V extends jni$_.JObject>( - $V object, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - object.$type, - ]) as jni$_.JType<$V>; + $V object, + ) { final _$object = object.reference; return _methodGenericEcho3(reference.pointer, _id_methodGenericEcho3 as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_nullableReturnMethodGenericEcho = _class.instanceMethodId( @@ -11214,16 +6849,15 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. $V? nullableReturnMethodGenericEcho<$V extends jni$_.JObject?>( $V object, - bool z, { - required jni$_.JType<$V> V, - }) { + bool z, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _nullableReturnMethodGenericEcho( reference.pointer, _id_nullableReturnMethodGenericEcho as jni$_.JMethodIDPtr, _$object.pointer, z ? 1 : 0) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_nullableReturnMethodGenericEcho2 = _class.instanceMethodId( @@ -11250,19 +6884,15 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. $V? nullableReturnMethodGenericEcho2<$V extends jni$_.JObject>( $V object, - bool z, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - object.$type, - ]) as jni$_.JType<$V>; + bool z, + ) { final _$object = object.reference; return _nullableReturnMethodGenericEcho2( reference.pointer, _id_nullableReturnMethodGenericEcho2 as jni$_.JMethodIDPtr, _$object.pointer, z ? 1 : 0) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_nullableMethodGenericEcho = _class.instanceMethodId( @@ -11284,15 +6914,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V nullableMethodGenericEcho(V object)` /// The returned object must be released after use, by calling the [release] method. $V nullableMethodGenericEcho<$V extends jni$_.JObject?>( - $V object, { - required jni$_.JType<$V> V, - }) { + $V object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _nullableMethodGenericEcho( reference.pointer, _id_nullableMethodGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_noAnnotationMethodGenericEcho = _class.instanceMethodId( @@ -11315,15 +6944,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V noAnnotationMethodGenericEcho(V object)` /// The returned object must be released after use, by calling the [release] method. $V? noAnnotationMethodGenericEcho<$V extends jni$_.JObject?>( - $V? object, { - required jni$_.JType<$V> V, - }) { + $V? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _noAnnotationMethodGenericEcho( reference.pointer, _id_noAnnotationMethodGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_nullableArgMethodGenericEcho = _class.instanceMethodId( @@ -11346,15 +6974,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V nullableArgMethodGenericEcho(V object)` /// The returned object must be released after use, by calling the [release] method. $V nullableArgMethodGenericEcho<$V extends jni$_.JObject>( - $V? object, { - required jni$_.JType<$V> V, - }) { + $V? object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _nullableArgMethodGenericEcho( reference.pointer, _id_nullableArgMethodGenericEcho as jni$_.JMethodIDPtr, _$object.pointer) - .object<$V>(V); + .object<$V>(); } static final _id_classGenericList = _class.instanceMethodId( @@ -11379,7 +7006,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, jni$_.JList<$T> classGenericList() { return _classGenericList( reference.pointer, _id_classGenericList as jni$_.JMethodIDPtr) - .object>(jni$_.$JList$Type$<$T>(T)); + .object>(); } static final _id_classGenericListOfNullable = _class.instanceMethodId( @@ -11405,7 +7032,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, jni$_.JList<$T?> classGenericListOfNullable() { return _classGenericListOfNullable(reference.pointer, _id_classGenericListOfNullable as jni$_.JMethodIDPtr) - .object>(jni$_.$JList$Type$<$T?>(T.nullableType)); + .object>(); } static final _id_nullableClassGenericList = _class.instanceMethodId( @@ -11430,7 +7057,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableClassGenericList(reference.pointer, _id_nullableClassGenericList as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>(jni$_.$JList$NullableType$<$T>(T)); + .object?>(); } static final _id_nullableClassGenericListOfNullable = _class.instanceMethodId( @@ -11457,8 +7084,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, reference.pointer, _id_nullableClassGenericListOfNullable as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>( - jni$_.$JList$NullableType$<$T?>(T.nullableType)); + .object?>(); } static final _id_methodGenericList = _class.instanceMethodId( @@ -11480,13 +7106,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public java.util.List methodGenericList(V object)` /// The returned object must be released after use, by calling the [release] method. jni$_.JList<$V> methodGenericList<$V extends jni$_.JObject?>( - $V object, { - required jni$_.JType<$V> V, - }) { + $V object, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _methodGenericList(reference.pointer, _id_methodGenericList as jni$_.JMethodIDPtr, _$object.pointer) - .object>(jni$_.$JList$Type$<$V>(V)); + .object>(); } static final _id_methodGenericListOfNullable = _class.instanceMethodId( @@ -11509,12 +7134,10 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public java.util.List methodGenericListOfNullable()` /// The returned object must be released after use, by calling the [release] method. - jni$_.JList<$V?> methodGenericListOfNullable<$V extends jni$_.JObject?>({ - required jni$_.JType<$V> V, - }) { + jni$_.JList<$V?> methodGenericListOfNullable<$V extends jni$_.JObject?>() { return _methodGenericListOfNullable(reference.pointer, _id_methodGenericListOfNullable as jni$_.JMethodIDPtr) - .object>(jni$_.$JList$Type$<$V?>(V.nullableType)); + .object>(); } static final _id_nullableMethodGenericList = _class.instanceMethodId( @@ -11538,16 +7161,15 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JList<$V>? nullableMethodGenericList<$V extends jni$_.JObject?>( $V object, - bool z, { - required jni$_.JType<$V> V, - }) { + bool z, + ) { final _$object = object?.reference ?? jni$_.jNullReference; return _nullableMethodGenericList( reference.pointer, _id_nullableMethodGenericList as jni$_.JMethodIDPtr, _$object.pointer, z ? 1 : 0) - .object?>(jni$_.$JList$NullableType$<$V>(V)); + .object?>(); } static final _id_nullableMethodGenericListOfNullable = @@ -11570,15 +7192,13 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JList<$V?>? nullableMethodGenericListOfNullable<$V extends jni$_.JObject?>( - bool z, { - required jni$_.JType<$V> V, - }) { + bool z, + ) { return _nullableMethodGenericListOfNullable( reference.pointer, _id_nullableMethodGenericListOfNullable as jni$_.JMethodIDPtr, z ? 1 : 0) - .object?>( - jni$_.$JList$NullableType$<$V?>(V.nullableType)); + .object?>(); } static final _id_firstOfClassGenericList = _class.instanceMethodId( @@ -11605,7 +7225,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, final _$list = list.reference; return _firstOfClassGenericList(reference.pointer, _id_firstOfClassGenericList as jni$_.JMethodIDPtr, _$list.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstOfClassGenericNullableList = _class.instanceMethodId( @@ -11635,7 +7255,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, reference.pointer, _id_firstOfClassGenericNullableList as jni$_.JMethodIDPtr, _$list.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstOfClassGenericListOfNullable = _class.instanceMethodId( @@ -11665,7 +7285,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, reference.pointer, _id_firstOfClassGenericListOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstOfClassGenericNullableListOfNullable = @@ -11696,7 +7316,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, reference.pointer, _id_firstOfClassGenericNullableListOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstOfMethodGenericList = _class.instanceMethodId( @@ -11718,16 +7338,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstOfMethodGenericList(java.util.List list)` /// The returned object must be released after use, by calling the [release] method. $V? firstOfMethodGenericList<$V extends jni$_.JObject?>( - jni$_.JList<$V> list, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (list.$type as jni$_.$JList$Type$).E, - ]) as jni$_.JType<$V>; + jni$_.JList<$V> list, + ) { final _$list = list.reference; return _firstOfMethodGenericList(reference.pointer, _id_firstOfMethodGenericList as jni$_.JMethodIDPtr, _$list.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstOfMethodGenericNullableList = _class.instanceMethodId( @@ -11750,15 +7366,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstOfMethodGenericNullableList(java.util.List list)` /// The returned object must be released after use, by calling the [release] method. $V? firstOfMethodGenericNullableList<$V extends jni$_.JObject?>( - jni$_.JList<$V>? list, { - required jni$_.JType<$V> V, - }) { + jni$_.JList<$V>? list, + ) { final _$list = list?.reference ?? jni$_.jNullReference; return _firstOfMethodGenericNullableList( reference.pointer, _id_firstOfMethodGenericNullableList as jni$_.JMethodIDPtr, _$list.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstOfMethodGenericListOfNullable = _class.instanceMethodId( @@ -11781,18 +7396,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstOfMethodGenericListOfNullable(java.util.List list)` /// The returned object must be released after use, by calling the [release] method. $V? firstOfMethodGenericListOfNullable<$V extends jni$_.JObject?>( - jni$_.JList<$V?> list, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (list.$type as jni$_.$JList$Type$).E, - ]) as jni$_.JType<$V>; + jni$_.JList<$V?> list, + ) { final _$list = list.reference; return _firstOfMethodGenericListOfNullable( reference.pointer, _id_firstOfMethodGenericListOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstOfMethodGenericNullableListOfNullable = @@ -11816,16 +7427,15 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstOfMethodGenericNullableListOfNullable(java.util.List list)` /// The returned object must be released after use, by calling the [release] method. $V? firstOfMethodGenericNullableListOfNullable<$V extends jni$_.JObject?>( - jni$_.JList<$V?>? list, { - required jni$_.JType<$V> V, - }) { + jni$_.JList<$V?>? list, + ) { final _$list = list?.reference ?? jni$_.jNullReference; return _firstOfMethodGenericNullableListOfNullable( reference.pointer, _id_firstOfMethodGenericNullableListOfNullable as jni$_.JMethodIDPtr, _$list.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstKeyOfComboMap = _class.instanceMethodId( @@ -11847,16 +7457,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public T firstKeyOfComboMap(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $T? firstKeyOfComboMap<$V extends jni$_.JObject?>( - jni$_.JMap<$T, $V> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T, $V> map, + ) { final _$map = map.reference; return _firstKeyOfComboMap(reference.pointer, _id_firstKeyOfComboMap as jni$_.JMethodIDPtr, _$map.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstValueOfComboMap = _class.instanceMethodId( @@ -11878,16 +7484,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstValueOfComboMap(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $V? firstValueOfComboMap<$V extends jni$_.JObject?>( - jni$_.JMap<$T, $V> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T, $V> map, + ) { final _$map = map.reference; return _firstValueOfComboMap(reference.pointer, _id_firstValueOfComboMap as jni$_.JMethodIDPtr, _$map.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstKeyOfComboMapNullableKey = _class.instanceMethodId( @@ -11910,18 +7512,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public T firstKeyOfComboMapNullableKey(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $T? firstKeyOfComboMapNullableKey<$V extends jni$_.JObject?>( - jni$_.JMap<$T?, $V> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T?, $V> map, + ) { final _$map = map.reference; return _firstKeyOfComboMapNullableKey( reference.pointer, _id_firstKeyOfComboMapNullableKey as jni$_.JMethodIDPtr, _$map.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstValueOfComboMapNullableKey = _class.instanceMethodId( @@ -11944,18 +7542,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstValueOfComboMapNullableKey(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $V? firstValueOfComboMapNullableKey<$V extends jni$_.JObject?>( - jni$_.JMap<$T?, $V> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T?, $V> map, + ) { final _$map = map.reference; return _firstValueOfComboMapNullableKey( reference.pointer, _id_firstValueOfComboMapNullableKey as jni$_.JMethodIDPtr, _$map.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstKeyOfComboMapNullableValue = _class.instanceMethodId( @@ -11978,18 +7572,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public T firstKeyOfComboMapNullableValue(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $T? firstKeyOfComboMapNullableValue<$V extends jni$_.JObject?>( - jni$_.JMap<$T, $V?> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T, $V?> map, + ) { final _$map = map.reference; return _firstKeyOfComboMapNullableValue( reference.pointer, _id_firstKeyOfComboMapNullableValue as jni$_.JMethodIDPtr, _$map.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstValueOfComboMapNullableValue = _class.instanceMethodId( @@ -12012,18 +7602,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstValueOfComboMapNullableValue(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $V? firstValueOfComboMapNullableValue<$V extends jni$_.JObject?>( - jni$_.JMap<$T, $V?> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T, $V?> map, + ) { final _$map = map.reference; return _firstValueOfComboMapNullableValue( reference.pointer, _id_firstValueOfComboMapNullableValue as jni$_.JMethodIDPtr, _$map.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstKeyOfComboMapNullableKeyAndValue = @@ -12047,18 +7633,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public T firstKeyOfComboMapNullableKeyAndValue(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $T? firstKeyOfComboMapNullableKeyAndValue<$V extends jni$_.JObject?>( - jni$_.JMap<$T?, $V?> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T?, $V?> map, + ) { final _$map = map.reference; return _firstKeyOfComboMapNullableKeyAndValue( reference.pointer, _id_firstKeyOfComboMapNullableKeyAndValue as jni$_.JMethodIDPtr, _$map.pointer) - .object<$T?>(T.nullableType); + .object<$T?>(); } static final _id_firstValueOfComboMapNullableKeyAndValue = @@ -12082,18 +7664,14 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public V firstValueOfComboMapNullableKeyAndValue(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. $V? firstValueOfComboMapNullableKeyAndValue<$V extends jni$_.JObject?>( - jni$_.JMap<$T?, $V?> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T?, $V?> map, + ) { final _$map = map.reference; return _firstValueOfComboMapNullableKeyAndValue( reference.pointer, _id_firstValueOfComboMapNullableKeyAndValue as jni$_.JMethodIDPtr, _$map.pointer) - .object<$V?>(V.nullableType); + .object<$V?>(); } static final _id_firstEntryOfComboMap = _class.instanceMethodId( @@ -12115,16 +7693,12 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public java.util.Map$Entry firstEntryOfComboMap(java.util.Map map)` /// The returned object must be released after use, by calling the [release] method. jni$_.JObject? firstEntryOfComboMap<$V extends jni$_.JObject?>( - jni$_.JMap<$T, $V> map, { - jni$_.JType<$V>? V, - }) { - V ??= jni$_.lowestCommonSuperType([ - (map.$type as jni$_.$JMap$Type$).V, - ]) as jni$_.JType<$V>; + jni$_.JMap<$T, $V> map, + ) { final _$map = map.reference; return _firstEntryOfComboMap(reference.pointer, _id_firstEntryOfComboMap as jni$_.JMethodIDPtr, _$map.pointer) - .object(const jni$_.$JObject$NullableType$()); + .object(); } static final _id_getW = _class.instanceMethodId( @@ -12148,7 +7722,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. $W getW() { return _getW(reference.pointer, _id_getW as jni$_.JMethodIDPtr) - .object<$W>(W); + .object<$W>(); } static final _id_nullableGetW = _class.instanceMethodId( @@ -12173,7 +7747,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _nullableGetW(reference.pointer, _id_nullableGetW as jni$_.JMethodIDPtr, z ? 1 : 0) - .object<$W?>(W.nullableType); + .object<$W?>(); } static final _id_list3dOfT = _class.instanceMethodId( @@ -12197,10 +7771,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JList>> list3dOfT() { return _list3dOfT(reference.pointer, _id_list3dOfT as jni$_.JMethodIDPtr) - .object>>>( - jni$_.$JList$Type$>>( - jni$_.$JList$Type$>( - jni$_.$JList$Type$<$T?>(T.nullableType)))); + .object>>>(); } static final _id_list3dOfU = _class.instanceMethodId( @@ -12224,9 +7795,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JList>> list3dOfU() { return _list3dOfU(reference.pointer, _id_list3dOfU as jni$_.JMethodIDPtr) - .object>>>( - jni$_.$JList$Type$>>(jni$_ - .$JList$Type$>(jni$_.$JList$Type$<$U>(U)))); + .object>>>(); } static final _id_list3dOfW = _class.instanceMethodId( @@ -12250,9 +7819,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. jni$_.JList>> list3dOfW() { return _list3dOfW(reference.pointer, _id_list3dOfW as jni$_.JMethodIDPtr) - .object>>>( - jni$_.$JList$Type$>>(jni$_ - .$JList$Type$>(jni$_.$JList$Type$<$W>(W)))); + .object>>>(); } static final _id_list3dOfNullableU = _class.instanceMethodId( @@ -12277,10 +7844,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _list3dOfNullableU(reference.pointer, _id_list3dOfNullableU as jni$_.JMethodIDPtr, z ? 1 : 0) - .object>>>( - jni$_.$JList$Type$>>( - jni$_.$JList$Type$>( - jni$_.$JList$Type$<$U?>(U.nullableType)))); + .object>>>(); } static final _id_list3dOfNullableW = _class.instanceMethodId( @@ -12305,10 +7869,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, ) { return _list3dOfNullableW(reference.pointer, _id_list3dOfNullableW as jni$_.JMethodIDPtr, z ? 1 : 0) - .object>>>( - jni$_.$JList$Type$>>( - jni$_.$JList$Type$>( - jni$_.$JList$Type$<$W?>(W.nullableType)))); + .object>>>(); } static final _id_nested = _class.instanceMethodId( @@ -12332,9 +7893,7 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// The returned object must be released after use, by calling the [release] method. Annotated$Nested<$T?, $U, $W, jni$_.JInteger>? nested() { return _nested(reference.pointer, _id_nested as jni$_.JMethodIDPtr) - .object?>( - $Annotated$Nested$NullableType$<$T?, $U, $W, jni$_.JInteger>( - T.nullableType, U, W, const jni$_.$JInteger$Type$())); + .object?>(); } static final _id_intList = _class.instanceMethodId( @@ -12357,152 +7916,27 @@ class Annotated<$T extends jni$_.JObject?, $U extends jni$_.JObject, /// from: `public java.util.List intList()` /// The returned object must be released after use, by calling the [release] method. jni$_.JList intList() { - return _intList(reference.pointer, _id_intList as jni$_.JMethodIDPtr) - .object>( - const jni$_.$JList$Type$(jni$_.$JInteger$Type$())); - } -} - -final class $Annotated$NullableType$< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject> extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$W> W; - - @jni$_.internal - const $Annotated$NullableType$( - this.T, - this.U, - this.W, - ); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/annotations/Annotated;'; - - @jni$_.internal - @core$_.override - Annotated<$T, $U, $W>? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : Annotated<$T, $U, $W>.fromReference( - T, - U, - W, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($Annotated$NullableType$, T, U, W); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Annotated$NullableType$<$T, $U, $W>) && - other is $Annotated$NullableType$<$T, $U, $W> && - T == other.T && - U == other.U && - W == other.W; - } -} - -final class $Annotated$Type$< - $T extends jni$_.JObject?, - $U extends jni$_.JObject, - $W extends jni$_.JObject> extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - final jni$_.JType<$U> U; - - @jni$_.internal - final jni$_.JType<$W> W; + return _intList(reference.pointer, _id_intList as jni$_.JMethodIDPtr) + .object>(); + } +} +final class $Annotated$Type$ extends jni$_.JType { @jni$_.internal - const $Annotated$Type$( - this.T, - this.U, - this.W, - ); + const $Annotated$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/Annotated;'; - - @jni$_.internal - @core$_.override - Annotated<$T, $U, $W> fromReference(jni$_.JReference reference) => - Annotated<$T, $U, $W>.fromReference( - T, - U, - W, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => - $Annotated$NullableType$<$T, $U, $W>(T, U, W); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($Annotated$Type$, T, U, W); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Annotated$Type$<$T, $U, $W>) && - other is $Annotated$Type$<$T, $U, $W> && - T == other.T && - U == other.U && - W == other.W; - } } /// from: `com.github.dart_lang.jnigen.annotations.JsonSerializable$Case` -class JsonSerializable$Case extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - JsonSerializable$Case.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type JsonSerializable$Case._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/annotations/JsonSerializable$Case'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $JsonSerializable$Case$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $JsonSerializable$Case$Type$(); @@ -12514,7 +7948,7 @@ class JsonSerializable$Case extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.annotations.JsonSerializable$Case SNAKE_CASE` /// The returned object must be released after use, by calling the [release] method. static JsonSerializable$Case get SNAKE_CASE => - _id_SNAKE_CASE.get(_class, const $JsonSerializable$Case$Type$()); + _id_SNAKE_CASE.get(_class, const jni$_.$JObject$NullableType$()); static final _id_KEBAB_CASE = _class.staticFieldId( r'KEBAB_CASE', @@ -12524,7 +7958,7 @@ class JsonSerializable$Case extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.annotations.JsonSerializable$Case KEBAB_CASE` /// The returned object must be released after use, by calling the [release] method. static JsonSerializable$Case get KEBAB_CASE => - _id_KEBAB_CASE.get(_class, const $JsonSerializable$Case$Type$()); + _id_KEBAB_CASE.get(_class, const jni$_.$JObject$NullableType$()); static final _id_CAMEL_CASE = _class.staticFieldId( r'CAMEL_CASE', @@ -12534,7 +7968,7 @@ class JsonSerializable$Case extends jni$_.JObject { /// from: `static public final com.github.dart_lang.jnigen.annotations.JsonSerializable$Case CAMEL_CASE` /// The returned object must be released after use, by calling the [release] method. static JsonSerializable$Case get CAMEL_CASE => - _id_CAMEL_CASE.get(_class, const $JsonSerializable$Case$Type$()); + _id_CAMEL_CASE.get(_class, const jni$_.$JObject$NullableType$()); static final _id_values = _class.staticMethodId( r'values', @@ -12557,9 +7991,7 @@ class JsonSerializable$Case extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. static jni$_.JArray? values() { return _values(_class.reference.pointer, _id_values as jni$_.JMethodIDPtr) - .object?>( - const jni$_.$JArray$NullableType$( - $JsonSerializable$Case$NullableType$())); + .object?>(); } static final _id_valueOf = _class.staticMethodId( @@ -12586,48 +8018,7 @@ class JsonSerializable$Case extends jni$_.JObject { final _$string = string?.reference ?? jni$_.jNullReference; return _valueOf(_class.reference.pointer, _id_valueOf as jni$_.JMethodIDPtr, _$string.pointer) - .object( - const $JsonSerializable$Case$NullableType$()); - } -} - -final class $JsonSerializable$Case$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $JsonSerializable$Case$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/annotations/JsonSerializable$Case;'; - - @jni$_.internal - @core$_.override - JsonSerializable$Case? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : JsonSerializable$Case.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($JsonSerializable$Case$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($JsonSerializable$Case$NullableType$) && - other is $JsonSerializable$Case$NullableType$; + .object(); } } @@ -12640,55 +8031,14 @@ final class $JsonSerializable$Case$Type$ @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/JsonSerializable$Case;'; - - @jni$_.internal - @core$_.override - JsonSerializable$Case fromReference(jni$_.JReference reference) => - JsonSerializable$Case.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $JsonSerializable$Case$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($JsonSerializable$Case$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($JsonSerializable$Case$Type$) && - other is $JsonSerializable$Case$Type$; - } } /// from: `com.github.dart_lang.jnigen.annotations.JsonSerializable` -class JsonSerializable extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - JsonSerializable.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type JsonSerializable._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/annotations/JsonSerializable'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $JsonSerializable$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $JsonSerializable$Type$(); static final _id_value = _class.instanceMethodId( @@ -12712,8 +8062,7 @@ class JsonSerializable extends jni$_.JObject { /// The returned object must be released after use, by calling the [release] method. JsonSerializable$Case? value() { return _value(reference.pointer, _id_value as jni$_.JMethodIDPtr) - .object( - const $JsonSerializable$Case$NullableType$()); + .object(); } /// Maps a specific port to the implemented interface. @@ -12791,9 +8140,7 @@ class JsonSerializable extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return JsonSerializable.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -12817,46 +8164,6 @@ final class _$JsonSerializable with $JsonSerializable { } } -final class $JsonSerializable$NullableType$ - extends jni$_.JType { - @jni$_.internal - const $JsonSerializable$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/annotations/JsonSerializable;'; - - @jni$_.internal - @core$_.override - JsonSerializable? fromReference(jni$_.JReference reference) => - reference.isNull - ? null - : JsonSerializable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($JsonSerializable$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($JsonSerializable$NullableType$) && - other is $JsonSerializable$NullableType$; - } -} - final class $JsonSerializable$Type$ extends jni$_.JType { @jni$_.internal const $JsonSerializable$Type$(); @@ -12865,55 +8172,13 @@ final class $JsonSerializable$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/JsonSerializable;'; - - @jni$_.internal - @core$_.override - JsonSerializable fromReference(jni$_.JReference reference) => - JsonSerializable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $JsonSerializable$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($JsonSerializable$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($JsonSerializable$Type$) && - other is $JsonSerializable$Type$; - } } /// from: `com.github.dart_lang.jnigen.annotations.MyDataClass` -class MyDataClass extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - MyDataClass.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type MyDataClass._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/annotations/MyDataClass'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $MyDataClass$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $MyDataClass$Type$(); static final _id_new$ = _class.constructorId( @@ -12935,47 +8200,8 @@ class MyDataClass extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory MyDataClass() { - return MyDataClass.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $MyDataClass$NullableType$ extends jni$_.JType { - @jni$_.internal - const $MyDataClass$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/annotations/MyDataClass;'; - - @jni$_.internal - @core$_.override - MyDataClass? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : MyDataClass.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyDataClass$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyDataClass$NullableType$) && - other is $MyDataClass$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -12987,54 +8213,13 @@ final class $MyDataClass$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/MyDataClass;'; - - @jni$_.internal - @core$_.override - MyDataClass fromReference(jni$_.JReference reference) => - MyDataClass.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $MyDataClass$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($MyDataClass$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($MyDataClass$Type$) && - other is $MyDataClass$Type$; - } } /// from: `com.github.dart_lang.jnigen.annotations.NotNull` -class NotNull extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - NotNull.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type NotNull._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/annotations/NotNull'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = $NotNull$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $NotNull$Type$(); @@ -13104,9 +8289,7 @@ class NotNull extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return NotNull.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -13118,43 +8301,6 @@ final class _$NotNull with $NotNull { _$NotNull(); } -final class $NotNull$NullableType$ extends jni$_.JType { - @jni$_.internal - const $NotNull$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/annotations/NotNull;'; - - @jni$_.internal - @core$_.override - NotNull? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : NotNull.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($NotNull$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($NotNull$NullableType$) && - other is $NotNull$NullableType$; - } -} - final class $NotNull$Type$ extends jni$_.JType { @jni$_.internal const $NotNull$Type$(); @@ -13162,51 +8308,13 @@ final class $NotNull$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/NotNull;'; - - @jni$_.internal - @core$_.override - NotNull fromReference(jni$_.JReference reference) => NotNull.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $NotNull$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($NotNull$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($NotNull$Type$) && other is $NotNull$Type$; - } } /// from: `com.github.dart_lang.jnigen.annotations.Nullable` -class Nullable extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - Nullable.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type Nullable._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/annotations/Nullable'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = $Nullable$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $Nullable$Type$(); @@ -13269,64 +8377,25 @@ class Nullable extends jni$_.JObject { ); final $a = $p.sendPort.nativePort; _$impls[$a] = $impl; - } - - factory Nullable.implement( - $Nullable $impl, - ) { - final $i = jni$_.JImplementer(); - implementIn($i, $impl); - return Nullable.fromReference( - $i.implementReference(), - ); - } -} - -abstract base mixin class $Nullable { - factory $Nullable() = _$Nullable; -} - -final class _$Nullable with $Nullable { - _$Nullable(); -} - -final class $Nullable$NullableType$ extends jni$_.JType { - @jni$_.internal - const $Nullable$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/annotations/Nullable;'; - - @jni$_.internal - @core$_.override - Nullable? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : Nullable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Nullable$NullableType$).hashCode; + } - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Nullable$NullableType$) && - other is $Nullable$NullableType$; + factory Nullable.implement( + $Nullable $impl, + ) { + final $i = jni$_.JImplementer(); + implementIn($i, $impl); + return $i.implement(); } } +abstract base mixin class $Nullable { + factory $Nullable() = _$Nullable; +} + +final class _$Nullable with $Nullable { + _$Nullable(); +} + final class $Nullable$Type$ extends jni$_.JType { @jni$_.internal const $Nullable$Type$(); @@ -13334,52 +8403,13 @@ final class $Nullable$Type$ extends jni$_.JType { @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/annotations/Nullable;'; - - @jni$_.internal - @core$_.override - Nullable fromReference(jni$_.JReference reference) => Nullable.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => const $Nullable$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($Nullable$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($Nullable$Type$) && other is $Nullable$Type$; - } } /// from: `com.github.dart_lang.jnigen.regressions.R2250$Child` -class R2250$Child extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - R2250$Child.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(reference); - +extension type R2250$Child._(jni$_.JObject _$this) implements jni$_.JObject { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/regressions/R2250$Child'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $R2250$Child$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $R2250$Child$Type$(); static final _id_foo = _class.instanceMethodId( @@ -13439,7 +8469,7 @@ class R2250$Child extends jni$_.JObject { final $a = $i.args; if ($d == r'foo(Ljava/lang/Object;)V') { _$impls[$p]!.foo( - $a![0]?.as(const jni$_.$JObject$Type$(), releaseOriginal: true), + $a![0], ); return jni$_.nullptr; } @@ -13481,9 +8511,7 @@ class R2250$Child extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return R2250$Child.fromReference( - $i.implementReference(), - ); + return $i.implement(); } } @@ -13511,44 +8539,6 @@ final class _$R2250$Child with $R2250$Child { } } -final class $R2250$Child$NullableType$ extends jni$_.JType { - @jni$_.internal - const $R2250$Child$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/regressions/R2250$Child;'; - - @jni$_.internal - @core$_.override - R2250$Child? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : R2250$Child.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($R2250$Child$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R2250$Child$NullableType$) && - other is $R2250$Child$NullableType$; - } -} - final class $R2250$Child$Type$ extends jni$_.JType { @jni$_.internal const $R2250$Child$Type$(); @@ -13557,73 +8547,16 @@ final class $R2250$Child$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/regressions/R2250$Child;'; - - @jni$_.internal - @core$_.override - R2250$Child fromReference(jni$_.JReference reference) => - R2250$Child.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $R2250$Child$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => ($R2250$Child$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R2250$Child$Type$) && - other is $R2250$Child$Type$; - } } /// from: `com.github.dart_lang.jnigen.regressions.R2250` -class R2250<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - R2250.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type R2250<$T extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/regressions/R2250'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $R2250$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $R2250$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $R2250$Type$(); static final _id_foo = _class.instanceMethodId( r'foo', r'(Ljava/lang/Object;)V', @@ -13681,7 +8614,7 @@ class R2250<$T extends jni$_.JObject?> extends jni$_.JObject { final $a = $i.args; if ($d == r'foo(Ljava/lang/Object;)V') { _$impls[$p]!.foo( - $a![0]?.as(_$impls[$p]!.T, releaseOriginal: true), + $a![0], ); return jni$_.nullptr; } @@ -13723,36 +8656,26 @@ class R2250<$T extends jni$_.JObject?> extends jni$_.JObject { ) { final $i = jni$_.JImplementer(); implementIn($i, $impl); - return R2250<$T>.fromReference( - $impl.T, - $i.implementReference(), - ); + return $i.implement>(); } } abstract base mixin class $R2250<$T extends jni$_.JObject?> { factory $R2250({ - required jni$_.JType<$T> T, required void Function($T? object) foo, bool foo$async, }) = _$R2250<$T>; - jni$_.JType<$T> get T; - void foo($T? object); bool get foo$async => false; } final class _$R2250<$T extends jni$_.JObject?> with $R2250<$T> { _$R2250({ - required this.T, required void Function($T? object) foo, this.foo$async = false, }) : _foo = foo; - @core$_.override - final jni$_.JType<$T> T; - final void Function($T? object) _foo; final bool foo$async; @@ -13761,114 +8684,20 @@ final class _$R2250<$T extends jni$_.JObject?> with $R2250<$T> { } } -final class $R2250$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $R2250$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/regressions/R2250;'; - - @jni$_.internal - @core$_.override - R2250<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : R2250<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($R2250$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R2250$NullableType$<$T>) && - other is $R2250$NullableType$<$T> && - T == other.T; - } -} - -final class $R2250$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - +final class $R2250$Type$ extends jni$_.JType { @jni$_.internal - const $R2250$Type$( - this.T, - ); + const $R2250$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/regressions/R2250;'; - - @jni$_.internal - @core$_.override - R2250<$T> fromReference(jni$_.JReference reference) => - R2250<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => $R2250$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($R2250$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R2250$Type$<$T>) && - other is $R2250$Type$<$T> && - T == other.T; - } } /// from: `com.github.dart_lang.jnigen.regressions.R693$Child` -class R693$Child extends R693 { - @jni$_.internal - @core$_.override - final jni$_.JType $type; - - @jni$_.internal - R693$Child.fromReference( - jni$_.JReference reference, - ) : $type = type, - super.fromReference(const $R693$Child$NullableType$(), reference); - +extension type R693$Child._(jni$_.JObject _$this) implements R693 { static final _class = jni$_.JClass.forName( r'com/github/dart_lang/jnigen/regressions/R693$Child'); - /// The type which includes information such as the signature of this class. - static const jni$_.JType nullableType = - $R693$Child$NullableType$(); - /// The type which includes information such as the signature of this class. static const jni$_.JType type = $R693$Child$Type$(); static final _id_new$ = _class.constructorId( @@ -13890,48 +8719,8 @@ class R693$Child extends R693 { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. factory R693$Child() { - return R693$Child.fromReference( - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $R693$Child$NullableType$ extends jni$_.JType { - @jni$_.internal - const $R693$Child$NullableType$(); - - @jni$_.internal - @core$_.override - String get signature => - r'Lcom/github/dart_lang/jnigen/regressions/R693$Child;'; - - @jni$_.internal - @core$_.override - R693$Child? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : R693$Child.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => - const $R693$NullableType$($R693$Child$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => ($R693$Child$NullableType$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R693$Child$NullableType$) && - other is $R693$Child$NullableType$; + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object(); } } @@ -13943,74 +8732,16 @@ final class $R693$Child$Type$ extends jni$_.JType { @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/regressions/R693$Child;'; - - @jni$_.internal - @core$_.override - R693$Child fromReference(jni$_.JReference reference) => - R693$Child.fromReference( - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => - const $R693$NullableType$($R693$Child$NullableType$()); - - @jni$_.internal - @core$_.override - jni$_.JType get nullableType => - const $R693$Child$NullableType$(); - - @jni$_.internal - @core$_.override - final superCount = 2; - - @core$_.override - int get hashCode => ($R693$Child$Type$).hashCode; - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R693$Child$Type$) && - other is $R693$Child$Type$; - } } /// from: `com.github.dart_lang.jnigen.regressions.R693` -class R693<$T extends jni$_.JObject?> extends jni$_.JObject { - @jni$_.internal - @core$_.override - final jni$_.JType> $type; - - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - R693.fromReference( - this.T, - jni$_.JReference reference, - ) : $type = type<$T>(T), - super.fromReference(reference); - +extension type R693<$T extends jni$_.JObject?>._(jni$_.JObject _$this) + implements jni$_.JObject { static final _class = jni$_.JClass.forName(r'com/github/dart_lang/jnigen/regressions/R693'); /// The type which includes information such as the signature of this class. - static jni$_.JType?> nullableType<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $R693$NullableType$<$T>( - T, - ); - } - - /// The type which includes information such as the signature of this class. - static jni$_.JType> type<$T extends jni$_.JObject?>( - jni$_.JType<$T> T, - ) { - return $R693$Type$<$T>( - T, - ); - } - + static const jni$_.JType type = $R693$Type$(); static final _id_new$ = _class.constructorId( r'()V', ); @@ -14029,100 +8760,17 @@ class R693<$T extends jni$_.JObject?> extends jni$_.JObject { /// from: `public void ()` /// The returned object must be released after use, by calling the [release] method. - factory R693({ - required jni$_.JType<$T> T, - }) { - return R693<$T>.fromReference( - T, - _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) - .reference); - } -} - -final class $R693$NullableType$<$T extends jni$_.JObject?> - extends jni$_.JType?> { - @jni$_.internal - final jni$_.JType<$T> T; - - @jni$_.internal - const $R693$NullableType$( - this.T, - ); - - @jni$_.internal - @core$_.override - String get signature => r'Lcom/github/dart_lang/jnigen/regressions/R693;'; - - @jni$_.internal - @core$_.override - R693<$T>? fromReference(jni$_.JReference reference) => reference.isNull - ? null - : R693<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => this; - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($R693$NullableType$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R693$NullableType$<$T>) && - other is $R693$NullableType$<$T> && - T == other.T; + factory R693() { + return _new$(_class.reference.pointer, _id_new$ as jni$_.JMethodIDPtr) + .object>(); } } -final class $R693$Type$<$T extends jni$_.JObject?> - extends jni$_.JType> { - @jni$_.internal - final jni$_.JType<$T> T; - +final class $R693$Type$ extends jni$_.JType { @jni$_.internal - const $R693$Type$( - this.T, - ); + const $R693$Type$(); @jni$_.internal @core$_.override String get signature => r'Lcom/github/dart_lang/jnigen/regressions/R693;'; - - @jni$_.internal - @core$_.override - R693<$T> fromReference(jni$_.JReference reference) => R693<$T>.fromReference( - T, - reference, - ); - @jni$_.internal - @core$_.override - jni$_.JType get superType => const jni$_.$JObject$NullableType$(); - - @jni$_.internal - @core$_.override - jni$_.JType?> get nullableType => $R693$NullableType$<$T>(T); - - @jni$_.internal - @core$_.override - final superCount = 1; - - @core$_.override - int get hashCode => Object.hash($R693$Type$, T); - - @core$_.override - bool operator ==(Object other) { - return other.runtimeType == ($R693$Type$<$T>) && - other is $R693$Type$<$T> && - T == other.T; - } } diff --git a/pkgs/jnigen/test/simple_package_test/runtime_test_registrant.dart b/pkgs/jnigen/test/simple_package_test/runtime_test_registrant.dart index 1635071f9..e2268874c 100644 --- a/pkgs/jnigen/test/simple_package_test/runtime_test_registrant.dart +++ b/pkgs/jnigen/test/simple_package_test/runtime_test_registrant.dart @@ -221,7 +221,7 @@ void registerTests(String groupName, TestRunnerCallback test) { final ex2 = Example(); ex1.setNumber(1); ex2.setNumber(2); - final array = JArray(Example.nullableType, 2); + final array = JArray.withLength(Example.type, 2); array[0] = ex1; array[1] = ex2; expect(array[0]!.getNumber(), 1); @@ -290,10 +290,7 @@ void registerTests(String groupName, TestRunnerCallback test) { using((arena) { final grandParent = GrandParent( 'Hello'.toJString()..releasedBy(arena), - T: JString.type, )..releasedBy(arena); - expect(grandParent, isA>()); - expect(grandParent.$type, isA<$GrandParent$Type$>()); expect( grandParent.value!.toDartString(releaseOriginal: true), 'Hello', @@ -302,38 +299,16 @@ void registerTests(String groupName, TestRunnerCallback test) { }); test('MyStack', () { using((arena) { - final stack = MyStack(T: JString.type)..releasedBy(arena); + final stack = MyStack()..releasedBy(arena); stack.push('Hello'.toJString()..releasedBy(arena)); stack.push('World'.toJString()..releasedBy(arena)); expect(stack.pop()!.toDartString(releaseOriginal: true), 'World'); expect(stack.pop()!.toDartString(releaseOriginal: true), 'Hello'); }); }); - test( - 'Different stacks have different types, same stacks have same types', - () { - using((arena) { - final aStringStack = MyStack(T: JString.type)..releasedBy(arena); - final anotherStringStack = MyStack(T: JString.type) - ..releasedBy(arena); - final anObjectStack = MyStack(T: JObject.type)..releasedBy(arena); - expect(aStringStack.$type, anotherStringStack.$type); - expect( - aStringStack.$type.hashCode, - anotherStringStack.$type.hashCode, - ); - expect(aStringStack.$type, isNot(anObjectStack.$type)); - expect( - aStringStack.$type.hashCode, - isNot(anObjectStack.$type.hashCode), - ); - }); - }, - ); test('MyMap', () { using((arena) { - final map = MyMap(K: JString.type, V: Example.type) - ..releasedBy(arena); + final map = MyMap()..releasedBy(arena); final helloExample = Example.new$1(1)..releasedBy(arena); final worldExample = Example.new$1(2)..releasedBy(arena); map.put('Hello'.toJString()..releasedBy(arena), helloExample); @@ -376,7 +351,7 @@ void registerTests(String groupName, TestRunnerCallback test) { }); test('StringKeyedMap', () { using((arena) { - final map = StringKeyedMap(V: Example.type)..releasedBy(arena); + final map = StringKeyedMap()..releasedBy(arena); final example = Example()..releasedBy(arena); map.put('Hello'.toJString()..releasedBy(arena), example); expect( @@ -391,7 +366,7 @@ void registerTests(String groupName, TestRunnerCallback test) { }); test('StringValuedMap', () { using((arena) { - final map = StringValuedMap(K: Example.type)..releasedBy(arena); + final map = StringValuedMap()..releasedBy(arena); final example = Example()..releasedBy(arena); map.put(example, 'Hello'.toJString()..releasedBy(arena)); expect( @@ -416,22 +391,9 @@ void registerTests(String groupName, TestRunnerCallback test) { }); }); }); - test('superclass count', () { - // ignore: invalid_use_of_internal_member - expect(JObject.type.superCount, 0); - // ignore: invalid_use_of_internal_member - expect(MyMap.type(JObject.type, JObject.type).superCount, 1); - // ignore: invalid_use_of_internal_member - expect(StringKeyedMap.type(JObject.type).superCount, 2); - // ignore: invalid_use_of_internal_member - expect(StringValuedMap.type(JObject.type).superCount, 2); - // ignore: invalid_use_of_internal_member - expect(StringMap.type.superCount, 3); - }); test('nested generics', () { using((arena) { - final grandParent = GrandParent( - T: JString.type, + final grandParent = GrandParent( '!'.toJString()..releasedBy(arena), )..releasedBy(arena); expect(grandParent.value!.toDartString(releaseOriginal: true), '!'); @@ -444,7 +406,6 @@ void registerTests(String groupName, TestRunnerCallback test) { ); final exampleStaticParent = GrandParent.varStaticParent( - S: Example.type, Example()..releasedBy(arena), )! ..releasedBy(arena); @@ -463,7 +424,6 @@ void registerTests(String groupName, TestRunnerCallback test) { expect(strParent.value!.toDartString(releaseOriginal: true), 'Hello'); final exampleParent = grandParent.varParent( - S: Example.type, Example()..releasedBy(arena), )! ..releasedBy(arena); @@ -481,17 +441,14 @@ void registerTests(String groupName, TestRunnerCallback test) { }); test('Constructing non-static nested classes', () { using((arena) { - final grandParent = GrandParent(1.toJInteger(), T: JInteger.type) - ..releasedBy(arena); + final grandParent = GrandParent(1.toJInteger())..releasedBy(arena); final parent = GrandParent$Parent( grandParent, 2.toJInteger(), - S: JInteger.type, )..releasedBy(arena); final child = GrandParent$Parent$Child( parent, 3.toJInteger(), - U: JInteger.type, )..releasedBy(arena); expect(grandParent.value!.intValue(releaseOriginal: true), 1); expect(parent.parentValue!.intValue(releaseOriginal: true), 1); @@ -502,908 +459,809 @@ void registerTests(String groupName, TestRunnerCallback test) { }); }); - group('Generic type inference', () { - test('MyStack.of1', () { - using((arena) { - final emptyStack = MyStack(T: JString.type)..releasedBy(arena); - expect(emptyStack.size(), 0); - final stack = MyStack.of$1( - 'Hello'.toJString()..releasedBy(arena), - T: JString.type, - )! - ..releasedBy(arena); - expect(stack, isA>()); - expect(stack.$type, isA<$MyStack$Type$>()); - expect(stack.pop()!.toDartString(releaseOriginal: true), 'Hello'); - }); - }); - test('MyStack.of 2 strings', () { - using((arena) { - final stack = MyStack.of$2( - 'Hello'.toJString()..releasedBy(arena), - 'World'.toJString()..releasedBy(arena), - T: JString.type, - )! - ..releasedBy(arena); - expect(stack, isA>()); - expect(stack.$type, isA<$MyStack$Type$>()); - expect(stack.pop()!.toDartString(releaseOriginal: true), 'World'); - expect(stack.pop()!.toDartString(releaseOriginal: true), 'Hello'); - }); - }); - test('MyStack.of a string and an array', () { - using((arena) { - final array = JArray.filled(1, 'World'.toJString()..releasedBy(arena)) - ..releasedBy(arena); - final stack = MyStack.of$2( - T: JObject.type, - 'Hello'.toJString()..releasedBy(arena), - array, - )! - ..releasedBy(arena); - expect(stack, isA>()); - expect(stack.$type, isA<$MyStack$Type$>()); - expect( - stack - .pop()! - .as(JArray.type(JString.type), releaseOriginal: true)[0] - .toDartString(releaseOriginal: true), - 'World', + group('interface implementation', () { + for (final (threading, consume) in [ + ('another thread', MyInterfaceConsumer.consumeOnAnotherThread), + ('the same thread', MyInterfaceConsumer.consumeOnSameThread), + ]) { + test('MyInterface.implement on $threading', () async { + final voidCallbackResult = Completer(); + final varCallbackResult = Completer(); + final manyPrimitivesResult = Completer(); + // We can use this trick to access self, instead of generating a `thiz` + // or `self` argument for each one of the callbacks. + late final MyInterface myInterface; + myInterface = MyInterface.implement( + $MyInterface( + voidCallback: voidCallbackResult.complete, + stringCallback: (s) { + return (s!.toDartString(releaseOriginal: true) * 2).toJString(); + }, + varCallback: (JInteger? t) { + final result = + (t!.intValue(releaseOriginal: true) * 2).toJInteger(); + varCallbackResult.complete(result); + return result; + }, + manyPrimitives: (a, b, c, d) { + if (b) { + final result = a + c + d.toInt(); + manyPrimitivesResult.complete(result); + return result; + } else { + // Call self, add to [a] when [b] is false and change b to true. + return myInterface.manyPrimitives(a + 1, true, c, d); + } + }, + ), ); - expect( - stack - .pop()! - .as(JString.type, releaseOriginal: true) - .toDartString(releaseOriginal: true), - 'Hello', + // [stringCallback] is going to be called first using [s]. + // The result of it is going to be used as the argument for + // [voidCallback]. + // The other two methods will be called individually using the passed + // arguments afterwards. + consume( + myInterface, + // For stringCallback: + 'hello'.toJString(), + // For manyPrimitives: + -1, + false, + 3, + 3.14, + // For varCallback + 7.toJInteger(), ); + final voidCallback = await voidCallbackResult.future; + expect( + voidCallback.toDartString(releaseOriginal: true), 'hellohello'); + + final varCallback = await varCallbackResult.future; + expect(varCallback.intValue(), 14); + + final manyPrimitives = await manyPrimitivesResult.future; + expect(manyPrimitives, -1 + 3 + 3.14.toInt() + 1); + + // Running garbage collection does not work on Android. Skipping this + // test on Android. + // Currently we have one implementation of the interface. + expect(MyInterface.$impls, hasLength(1), skip: Platform.isAndroid); + myInterface.release(); + if (!Platform.isAndroid) { + _runJavaGC(); + await _waitUntil(() => MyInterface.$impls.isEmpty); + expect(MyInterface.$impls, isEmpty); + } }); - }); - test('MyStack.from array of string', () { - using((arena) { - final array = JArray.filled(1, 'Hello'.toJString()..releasedBy(arena)) - ..releasedBy(arena); - final stack = MyStack.fromArray(T: JString.type, array)! - ..releasedBy(arena); - expect(stack, isA>()); - expect(stack.$type, isA<$MyStack$Type$>()); - expect(stack.pop()!.toDartString(releaseOriginal: true), 'Hello'); + test('implementing multiple interfaces', () async { + final implementer = JImplementer(); + MyInterface.implementIn( + implementer, + $MyInterface( + voidCallback: (s) {}, + stringCallback: (s) { + return s; + }, + varCallback: (t) { + return t; + }, + manyPrimitives: (a, b, c, d) => 42, + ), + ); + var runnableRan = false; + MyRunnable.implementIn( + implementer, + $MyRunnable( + run: () { + runnableRan = true; + }, + ), + ); + final runnable = implementer.implement(); + runnable.run(); + expect(runnableRan, isTrue); + final myInterface = runnable.as( + MyInterface.type(JString.type), + releaseOriginal: true, + ); + expect(myInterface.manyPrimitives(1, true, 3, 4), 42); + + // Running garbage collection does not work on Android. Skipping this + // test on Android. + expect(MyInterface.$impls, hasLength(1), skip: Platform.isAndroid); + expect(MyRunnable.$impls, hasLength(1), skip: Platform.isAndroid); + myInterface.release(); + if (!Platform.isAndroid) { + _runJavaGC(); + await _waitUntil(() => MyInterface.$impls.isEmpty); + // Since the interface is now deleted, the cleaner must signal to Dart + // to clean up. + expect(MyInterface.$impls, isEmpty); + expect(MyRunnable.$impls, isEmpty); + } }); - }); - test('MyStack.fromArrayOfArrayOfGrandParents', () { - using((arena) { - final firstDimention = JArray.filled( - 1, - GrandParent(T: JString.type, 'Hello'.toJString()..releasedBy(arena)) - ..releasedBy(arena), - )..releasedBy(arena); - final twoDimentionalArray = JArray.filled(1, firstDimention) - ..releasedBy(arena); - final stack = MyStack.fromArrayOfArrayOfGrandParents( - S: JString.type, - twoDimentionalArray, - )! - ..releasedBy(arena); - expect(stack, isA>()); - expect(stack.$type, isA<$MyStack$Type$>()); - expect(stack.pop()!.toDartString(releaseOriginal: true), 'Hello'); + test('Reuse implementation for multiple instances', () { + using((arena) { + final hexParser = StringConverter.implement( + DartStringToIntParser(radix: 16), + )..releasedBy(arena); + final decimalParser = StringConverter.implement( + DartStringToIntParser(radix: 10), + )..releasedBy(arena); + final fifteen = StringConverterConsumer.consumeOnSameThread( + hexParser, + 'F'.toJString()..releasedBy(arena), + )!; + expect(fifteen.intValue(releaseOriginal: true), 15); + final fortyTwo = StringConverterConsumer.consumeOnSameThread( + decimalParser, + '42'.toJString()..releasedBy(arena), + )!; + expect(fortyTwo.intValue(releaseOriginal: true), 42); + }); }); - }); - }); - }); - - group('interface implementation', () { - for (final (threading, consume) in [ - ('another thread', MyInterfaceConsumer.consumeOnAnotherThread), - ('the same thread', MyInterfaceConsumer.consumeOnSameThread), - ]) { - test('MyInterface.implement on $threading', () async { - final voidCallbackResult = Completer(); - final varCallbackResult = Completer(); - final manyPrimitivesResult = Completer(); - // We can use this trick to access self, instead of generating a `thiz` - // or `self` argument for each one of the callbacks. - late final MyInterface myInterface; - myInterface = MyInterface.implement( - $MyInterface( - voidCallback: voidCallbackResult.complete, - stringCallback: (s) { - return (s!.toDartString(releaseOriginal: true) * 2).toJString(); - }, - varCallback: (JInteger? t) { - final result = - (t!.intValue(releaseOriginal: true) * 2).toJInteger(); - varCallbackResult.complete(result); - return result; - }, - manyPrimitives: (a, b, c, d) { - if (b) { - final result = a + c + d.toInt(); - manyPrimitivesResult.complete(result); - return result; - } else { - // Call self, add to [a] when [b] is false and change b to true. - return myInterface.manyPrimitives(a + 1, true, c, d); - } - }, - T: JInteger.type, - ), - ); - // [stringCallback] is going to be called first using [s]. - // The result of it is going to be used as the argument for - // [voidCallback]. - // The other two methods will be called individually using the passed - // arguments afterwards. - consume( - T: JInteger.type, - myInterface, - // For stringCallback: - 'hello'.toJString(), - // For manyPrimitives: - -1, - false, - 3, - 3.14, - // For varCallback - 7.toJInteger(), - ); - final voidCallback = await voidCallbackResult.future; - expect(voidCallback.toDartString(releaseOriginal: true), 'hellohello'); - - final varCallback = await varCallbackResult.future; - expect(varCallback.intValue(), 14); - - final manyPrimitives = await manyPrimitivesResult.future; - expect(manyPrimitives, -1 + 3 + 3.14.toInt() + 1); - - // Running garbage collection does not work on Android. Skipping this - // test on Android. - // Currently we have one implementation of the interface. - expect(MyInterface.$impls, hasLength(1), skip: Platform.isAndroid); - myInterface.release(); - if (!Platform.isAndroid) { - _runJavaGC(); - await _waitUntil(() => MyInterface.$impls.isEmpty); - expect(MyInterface.$impls, isEmpty); - } - }); - test('implementing multiple interfaces', () async { - final implementer = JImplementer(); - MyInterface.implementIn( - implementer, - $MyInterface( - T: JString.type, - voidCallback: (s) {}, - stringCallback: (s) { - return s; - }, - varCallback: (t) { - return t; - }, - manyPrimitives: (a, b, c, d) => 42, - ), - ); - var runnableRan = false; - MyRunnable.implementIn( - implementer, - $MyRunnable( - run: () { - runnableRan = true; - }, - ), - ); - final runnable = implementer.implement(MyRunnable.type); - runnable.run(); - expect(runnableRan, isTrue); - final myInterface = runnable.as( - MyInterface.type(JString.type), - releaseOriginal: true, - ); - expect(myInterface.manyPrimitives(1, true, 3, 4), 42); - - // Running garbage collection does not work on Android. Skipping this - // test on Android. - expect(MyInterface.$impls, hasLength(1), skip: Platform.isAndroid); - expect(MyRunnable.$impls, hasLength(1), skip: Platform.isAndroid); - myInterface.release(); - if (!Platform.isAndroid) { - _runJavaGC(); - await _waitUntil(() => MyInterface.$impls.isEmpty); - // Since the interface is now deleted, the cleaner must signal to Dart - // to clean up. - expect(MyInterface.$impls, isEmpty); - expect(MyRunnable.$impls, isEmpty); + for (final style in ['callback', 'implemented class']) { + test('Listener callbacks - $style style', () async { + final completer = Completer(); + + final MyRunnable runnable; + if (style == 'callback') { + runnable = MyRunnable.implement( + $MyRunnable(run: completer.complete, run$async: true), + ); + } else { + runnable = MyRunnable.implement(AsyncRunnable(completer)); + } + final runner = MyRunnableRunner(runnable); + // Normally this would cause a deadlock, but as the callback is a + // listener, it will work. + runner.runOnAnotherThreadAndJoin(); + await completer.future; + // Running garbage collection does not work on Android. Skipping + // this test on Android. + expect(MyRunnable.$impls, hasLength(1), skip: Platform.isAndroid); + runnable.release(); + runner.release(); + if (!Platform.isAndroid) { + _runJavaGC(); + await _waitUntil(() => MyInterface.$impls.isEmpty); + // Since the interface is now deleted, the cleaner must signal to + // Dart to clean up. + expect(MyRunnable.$impls, isEmpty); + } + }); } - }); - test('Reuse implementation for multiple instances', () { - using((arena) { - final hexParser = StringConverter.implement( - DartStringToIntParser(radix: 16), - )..releasedBy(arena); - final decimalParser = StringConverter.implement( - DartStringToIntParser(radix: 10), - )..releasedBy(arena); - final fifteen = StringConverterConsumer.consumeOnSameThread( - hexParser, - 'F'.toJString()..releasedBy(arena), - )!; - expect(fifteen.intValue(releaseOriginal: true), 15); - final fortyTwo = StringConverterConsumer.consumeOnSameThread( - decimalParser, - '42'.toJString()..releasedBy(arena), - )!; - expect(fortyTwo.intValue(releaseOriginal: true), 42); - }); - }); - for (final style in ['callback', 'implemented class']) { - test('Listener callbacks - $style style', () async { - final completer = Completer(); - - final MyRunnable runnable; - if (style == 'callback') { - runnable = MyRunnable.implement( - $MyRunnable(run: completer.complete, run$async: true), - ); - } else { - runnable = MyRunnable.implement(AsyncRunnable(completer)); - } - final runner = MyRunnableRunner(runnable); - // Normally this would cause a deadlock, but as the callback is a - // listener, it will work. - runner.runOnAnotherThreadAndJoin(); - await completer.future; + test('Object methods work', () async { + final runnable = MyRunnable.implement($MyRunnable(run: () {})); + expect(runnable == runnable, true); + expect(runnable != runnable, false); + expect(runnable.hashCode, runnable.hashCode); + expect(runnable.toString(), runnable.toString()); // Running garbage collection does not work on Android. Skipping // this test on Android. expect(MyRunnable.$impls, hasLength(1), skip: Platform.isAndroid); runnable.release(); - runner.release(); if (!Platform.isAndroid) { _runJavaGC(); await _waitUntil(() => MyInterface.$impls.isEmpty); - // Since the interface is now deleted, the cleaner must signal to - // Dart to clean up. expect(MyRunnable.$impls, isEmpty); } }); } - test('Object methods work', () async { - final runnable = MyRunnable.implement($MyRunnable(run: () {})); - expect(runnable == runnable, true); - expect(runnable != runnable, false); - expect(runnable.hashCode, runnable.hashCode); - expect(runnable.toString(), runnable.toString()); - // Running garbage collection does not work on Android. Skipping - // this test on Android. - expect(MyRunnable.$impls, hasLength(1), skip: Platform.isAndroid); - runnable.release(); - if (!Platform.isAndroid) { - _runJavaGC(); - await _waitUntil(() => MyInterface.$impls.isEmpty); - expect(MyRunnable.$impls, isEmpty); - } - }); - } - group('Dart exceptions are handled', () { - for (final exception in [UnimplementedError(), 'Hello!']) { - for (final sameThread in [true, false]) { - test( - 'on ${sameThread ? 'the same thread' : 'another thread'}' - ' throwing $exception', () async { - await using((arena) async { - final runnable = MyRunnable.implement( - $MyRunnable( - run: () { - // ignore: only_throw_errors - throw exception; - }, - ), - )..releasedBy(arena); - final runner = MyRunnableRunner(runnable)..releasedBy(arena); - if (sameThread) { - runner.runOnSameThread(); - } else { - runner.runOnAnotherThread(); - } - while (runner.error == null) { - await Future.delayed(const Duration(milliseconds: 100)); - } - expect( - runner.error!.isInstanceOf( - JClass.forName( - 'java/lang/reflect/UndeclaredThrowableException', + group('Dart exceptions are handled', () { + for (final exception in [UnimplementedError(), 'Hello!']) { + for (final sameThread in [true, false]) { + test( + 'on ${sameThread ? 'the same thread' : 'another thread'}' + ' throwing $exception', () async { + await using((arena) async { + final runnable = MyRunnable.implement( + $MyRunnable( + run: () { + // ignore: only_throw_errors + throw exception; + }, ), - ), - isTrue, - ); - final throwableClass = runner.error!.jClass; - final cause = throwableClass - .instanceMethodId('getCause', '()Ljava/lang/Throwable;') - .call(runner.error!, JObject.type, []); - expect( - cause.isInstanceOf( - JClass.forName( - 'com/github/dart_lang/jni/PortProxyBuilder\$DartException', + )..releasedBy(arena); + final runner = MyRunnableRunner(runnable)..releasedBy(arena); + if (sameThread) { + runner.runOnSameThread(); + } else { + runner.runOnAnotherThread(); + } + while (runner.error == null) { + await Future.delayed(const Duration(milliseconds: 100)); + } + expect( + runner.error!.isInstanceOf( + JClass.forName( + 'java/lang/reflect/UndeclaredThrowableException', + ), ), - ), - isTrue, - ); - expect(cause.toString(), contains(exception.toString())); + isTrue, + ); + final throwableClass = runner.error!.jClass; + final cause = throwableClass + .instanceMethodId('getCause', '()Ljava/lang/Throwable;') + .call(runner.error!, JObject.type, []); + expect( + cause.isInstanceOf( + JClass.forName( + 'com/github/dart_lang/jni/PortProxyBuilder\$DartException', + ), + ), + isTrue, + ); + expect(cause.toString(), contains(exception.toString())); + }); + if (!Platform.isAndroid) { + _runJavaGC(); + } }); - if (!Platform.isAndroid) { - _runJavaGC(); - } - }); + } } - } - }); + }); - group('throw Java exceptions', () { - for (final (threading, consume) in [ - ('another thread', StringConverterConsumer.consumeOnAnotherThread), - ('the same thread', StringConverterConsumer.consumeOnSameThread), - ]) { - test('StringConverter.implement on $threading ', () async { - final stringConverter = StringConverter.implement( - $StringConverter( - parseToInt: (s) { - final value = int.tryParse(s!.toDartString()); - if (value == null) { - // ignore: only_throw_errors - throw StringConversionException( - 'Invalid integer expression: $s'.toJString(), - ); - } + group('throw Java exceptions', () { + for (final (threading, consume) in [ + ('another thread', StringConverterConsumer.consumeOnAnotherThread), + ('the same thread', StringConverterConsumer.consumeOnSameThread), + ]) { + test('StringConverter.implement on $threading ', () async { + final stringConverter = StringConverter.implement( + $StringConverter( + parseToInt: (s) { + final value = int.tryParse(s!.toDartString()); + if (value == null) { + // ignore: only_throw_errors + throw StringConversionException( + 'Invalid integer expression: $s'.toJString(), + ); + } - return value; - }, - ), - ); + return value; + }, + ), + ); - // Gets the result of a Java Future. - // TODO(#1213): remove this once we support Java futures. - Future<$T> toDartFuture<$T extends JObject>( - JObject future, - JType<$T> T, - ) async { - final receivePort = ReceivePort(); - await Isolate.spawn((sendPort) { - final futureClass = JClass.forName('java/util/concurrent/Future'); - final getMethod = futureClass.instanceMethodId( - 'get', - '()Ljava/lang/Object;', - ); - final result = getMethod(future, T, []); - // A workaround for `--pause-isolates-on-exit`. Otherwise getting - // test with coverage pauses indefinitely here. - // https://github.com/dart-lang/coverage/issues/472 - Isolate.current.kill(); - sendPort.send(result); - }, receivePort.sendPort); - return (await receivePort.first) as $T; - } + // Gets the result of a Java Future. + // TODO(#1213): remove this once we support Java futures. + Future<$T> toDartFuture<$T extends JObject>( + JObject future, + JType<$T> T, + ) async { + final receivePort = ReceivePort(); + await Isolate.spawn((sendPort) { + final futureClass = + JClass.forName('java/util/concurrent/Future'); + final getMethod = futureClass.instanceMethodId( + 'get', + '()Ljava/lang/Object;', + ); + final result = getMethod(future, T, []); + // A workaround for `--pause-isolates-on-exit`. Otherwise + // getting test with coverage pauses indefinitely here. + // https://github.com/dart-lang/coverage/issues/472 + Isolate.current.kill(); + sendPort.send(result); + }, receivePort.sendPort); + return (await receivePort.first) as $T; + } - final sevenHundredBoxed = consume( - stringConverter, - '700'.toJString(), - )!; - final int sevenHundred; - if (sevenHundredBoxed is JInteger) { - sevenHundred = sevenHundredBoxed.intValue(); - } else { - sevenHundred = (await toDartFuture( - sevenHundredBoxed, - JInteger.type, - )) - .intValue(); - } - expect(sevenHundred, 700); - - final fooBoxed = consume(stringConverter, 'foo'.toJString())!; - final int foo; - if (fooBoxed is JInteger) { - foo = fooBoxed.intValue(); - } else { - foo = (await toDartFuture(fooBoxed, JInteger.type)).intValue(); - } - expect(foo, -1); + final sevenHundredBoxed = consume( + stringConverter, + '700'.toJString(), + )!; + final int sevenHundred; + if (sevenHundredBoxed is JInteger) { + sevenHundred = sevenHundredBoxed.intValue(); + } else { + sevenHundred = (await toDartFuture( + sevenHundredBoxed, + JInteger.type, + )) + .intValue(); + } + expect(sevenHundred, 700); + + final fooBoxed = consume(stringConverter, 'foo'.toJString())!; + final int foo; + if (fooBoxed is JInteger) { + foo = fooBoxed.intValue(); + } else { + foo = (await toDartFuture(fooBoxed, JInteger.type)).intValue(); + } + expect(foo, -1); - stringConverter.release(); - }); - } - }); - test('Generic interface', () { - using((arena) { - final genericInterface = GenericInterface.implement( - $GenericInterface( - T: JString.type, - arrayOf: (element) => - JArray(JString.nullableType, 1)..[0] = element!, - firstKeyOf: (map) => map!.keys.first!.as(JString.type), - firstValueOf: (map) => map!.values.first, - firstOfArray: (array) => array![0]!.as(JString.type), - firstOfGenericArray: (array) => array![0], - genericArrayOf: (element) => - JArray(JObject.nullableType, 1)..[0] = element, - mapOf: (key, value) => - JMap.hash(JString.type, JObject.type)..[key!] = value, - ), - )..releasedBy(arena); - final stringArray = genericInterface.arrayOf( - 'hello'.toJString()..releasedBy(arena), - )! - ..releasedBy(arena); - expect(stringArray, hasLength(1)); - expect(stringArray[0]!.toDartString(releaseOriginal: true), 'hello'); - expect( - genericInterface - .firstOfArray(stringArray)! - .toDartString(releaseOriginal: true), - 'hello', - ); + stringConverter.release(); + }); + } + }); + test('Generic interface', () { + using((arena) { + final genericInterface = GenericInterface.implement( + $GenericInterface( + arrayOf: (element) => + JArray(JString.nullableType, 1)..[0] = element!, + firstKeyOf: (map) => map!.keys.first!.as(JString.type), + firstValueOf: (map) => map!.values.first, + firstOfArray: (array) => array![0]!.as(JString.type), + firstOfGenericArray: (array) => array![0], + genericArrayOf: (element) => + JArray(JObject.nullableType, 1)..[0] = element, + mapOf: (key, value) => + JMap.hash(JString.type, JObject.type)..[key!] = value, + ), + )..releasedBy(arena); + final stringArray = genericInterface.arrayOf( + 'hello'.toJString()..releasedBy(arena), + )! + ..releasedBy(arena); + expect(stringArray, hasLength(1)); + expect(stringArray[0]!.toDartString(releaseOriginal: true), 'hello'); + expect( + genericInterface + .firstOfArray(stringArray)! + .toDartString(releaseOriginal: true), + 'hello', + ); - final intArray = genericInterface.genericArrayOf( - U: JInteger.type, - 42.toJInteger()..releasedBy(arena), - )! - ..releasedBy(arena); - expect( - genericInterface - .firstOfGenericArray(U: JInteger.type, intArray)! - .intValue(releaseOriginal: true), - 42, - ); + final intArray = genericInterface.genericArrayOf( + 42.toJInteger()..releasedBy(arena), + )! + ..releasedBy(arena); + expect( + genericInterface + .firstOfGenericArray(intArray)! + .intValue(releaseOriginal: true), + 42, + ); - final jmap = genericInterface.mapOf( - U: JInteger.type, - 'hello'.toJString()..releasedBy(arena), - 42.toJInteger()..releasedBy(arena), - )! - ..releasedBy(arena); + final jmap = genericInterface.mapOf( + 'hello'.toJString()..releasedBy(arena), + 42.toJInteger()..releasedBy(arena), + )! + ..releasedBy(arena); + expect( + jmap['hello'.toJString()..releasedBy(arena)]!.intValue( + releaseOriginal: true, + ), + 42, + ); + expect( + genericInterface + .firstKeyOf(jmap)! + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + genericInterface + .firstValueOf(jmap)! + .intValue(releaseOriginal: true), + 42, + ); + }); + }); + test('Superinterface methods are available', () { expect( - jmap['hello'.toJString()..releasedBy(arena)]!.intValue( - releaseOriginal: true, - ), - 42, + $R2250.new, + isA< + $R2250<$T> Function<$T extends JObject?>({ + required JType<$T> T, + required void Function($T?) foo, + bool foo$async, + })>(), ); expect( - genericInterface - .firstKeyOf(U: JInteger.type, jmap)! - .as(JString.type) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - genericInterface - .firstValueOf(U: JInteger.type, jmap)! - .intValue(releaseOriginal: true), - 42, + $R2250$Child.new, + isA< + $R2250$Child Function({ + required void Function(JObject?) foo, + bool foo$async, + })>(), ); }); }); - test('Superinterface methods are available', () { - expect( - $R2250.new, - isA< - $R2250<$T> Function<$T extends JObject?>({ - required JType<$T> T, - required void Function($T?) foo, - bool foo$async, - })>(), - ); - expect( - $R2250$Child.new, - isA< - $R2250$Child Function({ - required void Function(JObject?) foo, - bool foo$async, - })>(), - ); - }); - }); - group('Nullablity annotations', () { - Annotated newTestObject(Arena arena) { - return Annotated( - null, - 'hello'.toJString()..releasedBy(arena), - 'world'.toJString()..releasedBy(arena), - T: JString.nullableType, - )..releasedBy(arena); - } + group('Nullablity annotations', () { + Annotated newTestObject(Arena arena) { + return Annotated( + null, + 'hello'.toJString()..releasedBy(arena), + 'world'.toJString()..releasedBy(arena), + )..releasedBy(arena); + } - Annotated newNonNullTestObject(Arena arena) { - return Annotated( - 'hello'.toJString()..releasedBy(arena), - 'hello'.toJString()..releasedBy(arena), - 'world'.toJString()..releasedBy(arena), - T: JString.type, - )..releasedBy(arena); - } + Annotated newNonNullTestObject(Arena arena) { + return Annotated( + 'hello'.toJString()..releasedBy(arena), + 'hello'.toJString()..releasedBy(arena), + 'world'.toJString()..releasedBy(arena), + )..releasedBy(arena); + } - test('Field access', () { - using((arena) { - final annotated = newTestObject(arena); - expect(annotated.t, isNull); - expect(annotated.u.toDartString(releaseOriginal: true), 'hello'); - expect(annotated.w.toDartString(releaseOriginal: true), 'world'); + test('Field access', () { + using((arena) { + final annotated = newTestObject(arena); + expect(annotated.t, isNull); + expect(annotated.u.toDartString(releaseOriginal: true), 'hello'); + expect(annotated.w.toDartString(releaseOriginal: true), 'world'); + }); }); - }); - test('Field setting', () { - using((arena) { - final annotated = newTestObject(arena); - annotated.t = 'hello'.toJString()..releasedBy(arena); - expect( - annotated.t! - .as(JString.type, releaseOriginal: true) - .toDartString(releaseOriginal: true), - 'hello', - ); + test('Field setting', () { + using((arena) { + final annotated = newTestObject(arena); + annotated.t = 'hello'.toJString()..releasedBy(arena); + expect( + annotated.t! + .as(JString.type, releaseOriginal: true) + .toDartString(releaseOriginal: true), + 'hello', + ); + }); }); - }); - test('Static methods', () { - expect( - Annotated.staticHello().toDartString(releaseOriginal: true), - 'hello', - ); - }); - - test('Methods with no object args', () { - using((arena) { - final annotated = newTestObject(arena); - expect(annotated.hello().toDartString(releaseOriginal: true), 'hello'); - expect(annotated.nullableHello(true), isNull); + test('Static methods', () { expect( - annotated.nullableHello(false)!.toDartString(releaseOriginal: true), + Annotated.staticHello().toDartString(releaseOriginal: true), 'hello', ); }); - }); - test('Methods returning arrays', () { - using((arena) { - final annotated = newTestObject(arena); - expect( - (annotated.array()..releasedBy(arena))[0].toDartString( - releaseOriginal: true, - ), - 'hello', - ); - expect((annotated.arrayOfNullable()..releasedBy(arena))[0], isNull); - expect(annotated.nullableArray(true), isNull); - expect( - (annotated.nullableArray( - false, - )! - ..releasedBy(arena))[0] - .toDartString(releaseOriginal: true), - 'hello', - ); - expect(annotated.nullableArrayOfNullable(true), isNull); - expect( - (annotated.nullableArrayOfNullable(false)!..releasedBy(arena))[0], - isNull, - ); + test('Methods with no object args', () { + using((arena) { + final annotated = newTestObject(arena); + expect( + annotated.hello().toDartString(releaseOriginal: true), 'hello'); + expect(annotated.nullableHello(true), isNull); + expect( + annotated.nullableHello(false)!.toDartString(releaseOriginal: true), + 'hello', + ); + }); }); - }); - test('Methods returning lists', () { - using((arena) { - final annotated = newTestObject(arena); - expect( - (annotated.list()..releasedBy(arena))[0].toDartString( - releaseOriginal: true, - ), - 'hello', - ); - expect((annotated.listOfNullable()..releasedBy(arena))[0], isNull); - expect(annotated.nullableList(true), isNull); - expect( - (annotated.nullableList( - false, - )! - ..releasedBy(arena))[0] - .toDartString(releaseOriginal: true), - 'hello', - ); - expect(annotated.nullableListOfNullable(true), isNull); - expect( - (annotated.nullableListOfNullable(false)!..releasedBy(arena))[0], - isNull, - ); + test('Methods returning arrays', () { + using((arena) { + final annotated = newTestObject(arena); + expect( + (annotated.array()..releasedBy(arena))[0].toDartString( + releaseOriginal: true, + ), + 'hello', + ); + expect((annotated.arrayOfNullable()..releasedBy(arena))[0], isNull); + expect(annotated.nullableArray(true), isNull); + expect( + (annotated.nullableArray( + false, + )! + ..releasedBy(arena))[0] + .toDartString(releaseOriginal: true), + 'hello', + ); + expect(annotated.nullableArrayOfNullable(true), isNull); + expect( + (annotated.nullableArrayOfNullable(false)!..releasedBy(arena))[0], + isNull, + ); + }); }); - }); - test('Methods with one object arg', () { - using((arena) { - final annotated = newTestObject(arena); - final object = 'hello'.toJString()..releasedBy(arena); - expect( - annotated.echo(object).toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated.nullableEcho(object)!.toDartString(releaseOriginal: true), - 'hello', - ); - expect(annotated.nullableEcho(null), isNull); + test('Methods returning lists', () { + using((arena) { + final annotated = newTestObject(arena); + expect( + (annotated.list()..releasedBy(arena))[0].toDartString( + releaseOriginal: true, + ), + 'hello', + ); + expect((annotated.listOfNullable()..releasedBy(arena))[0], isNull); + expect(annotated.nullableList(true), isNull); + expect( + (annotated.nullableList( + false, + )! + ..releasedBy(arena))[0] + .toDartString(releaseOriginal: true), + 'hello', + ); + expect(annotated.nullableListOfNullable(true), isNull); + expect( + (annotated.nullableListOfNullable(false)!..releasedBy(arena))[0], + isNull, + ); + }); }); - }); - - test('Class generic methods with one object arg', () { - using((arena) { - final annotatedNullableT = newTestObject(arena); - final object = 'hello'.toJString()..releasedBy(arena); - expect( - annotatedNullableT - .classGenericEcho(object)! // Cannot make it non-nullable. - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotatedNullableT - .nullableClassGenericEcho(object)! - .toDartString(releaseOriginal: true), - 'hello', - ); - expect(annotatedNullableT.nullableClassGenericEcho(null), isNull); - final annotatedNonNullableT = newNonNullTestObject(arena); - expect( - annotatedNonNullableT - .classGenericEcho(object) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotatedNonNullableT - .nullableClassGenericEcho(object)! - .toDartString(releaseOriginal: true), - 'hello', - ); - expect(annotatedNonNullableT.nullableClassGenericEcho(null), isNull); + test('Methods with one object arg', () { + using((arena) { + final annotated = newTestObject(arena); + final object = 'hello'.toJString()..releasedBy(arena); + expect( + annotated.echo(object).toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated.nullableEcho(object)!.toDartString(releaseOriginal: true), + 'hello', + ); + expect(annotated.nullableEcho(null), isNull); + }); }); - }); - test('Method generic methods with one object arg', () { - using((arena) { - final annotated = newTestObject(arena); - final object = 'hello'.toJString()..releasedBy(arena); - expect( - annotated - .methodGenericEcho(object, V: JString.nullableType)! - // Cannot make it non-nullable. - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - .methodGenericEcho(object, V: JString.type) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - .methodGenericEcho2(object) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - .methodGenericEcho3(object) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - // Requires `V`. - .nullableReturnMethodGenericEcho(object, false, V: JString.type)! - // Cannot make it non-nullable. - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - // Requires `V`. - .nullableReturnMethodGenericEcho(object, true, V: JString.type), - isNull, - ); - expect( - annotated - // `V` is optional. - .nullableReturnMethodGenericEcho2(object, false)! - // Cannot make it non-nullable. - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - // `V` is optional. - .nullableReturnMethodGenericEcho2(object, true), - isNull, - ); - expect( - annotated.nullableMethodGenericEcho(null, V: JString.nullableType), - isNull, - ); - expect( - annotated - .nullableMethodGenericEcho(object, V: JString.nullableType)! - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - .nullableMethodGenericEcho(object, V: JString.type) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated.noAnnotationMethodGenericEcho( - null, - V: JString.nullableType, - ), - isNull, - ); - expect( - annotated - .noAnnotationMethodGenericEcho(object, V: JString.nullableType)! - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - // With no annotations, specifying a non-nullable type still - // requires `!`. - .noAnnotationMethodGenericEcho(object, V: JString.type)! - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - annotated - .nullableArgMethodGenericEcho(object, V: JString.type) - .toDartString(releaseOriginal: true), - 'hello', - ); - expect( - () => annotated.nullableArgMethodGenericEcho( - null, - V: JString.type, - ), - throwsA(isA()), - ); - expect( - annotated - .nullableArgMethodGenericEcho(object, V: JString.type) - .toDartString(releaseOriginal: true), - 'hello', - ); + test('Class generic methods with one object arg', () { + using((arena) { + final annotatedNullableT = newTestObject(arena); + final object = 'hello'.toJString()..releasedBy(arena); + expect( + annotatedNullableT + .classGenericEcho(object)! // Cannot make it non-nullable. + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotatedNullableT + .nullableClassGenericEcho(object)! + .toDartString(releaseOriginal: true), + 'hello', + ); + expect(annotatedNullableT.nullableClassGenericEcho(null), isNull); + + final annotatedNonNullableT = newNonNullTestObject(arena); + expect( + annotatedNonNullableT + .classGenericEcho(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotatedNonNullableT + .nullableClassGenericEcho(object)! + .toDartString(releaseOriginal: true), + 'hello', + ); + expect(annotatedNonNullableT.nullableClassGenericEcho(null), isNull); + }); }); - }); - test('Class generic list methods', () { - using((arena) { - final annotated = newNonNullTestObject(arena); - expect( - (annotated.classGenericList()..releasedBy(arena)).first.toDartString( - releaseOriginal: true, - ), - 'hello', - ); - expect( - (annotated.classGenericListOfNullable()..releasedBy(arena)).first, - isNull, - ); - expect(annotated.nullableClassGenericList(true), isNull); - expect( - (annotated.nullableClassGenericList( - false, - )! - ..releasedBy(arena)) - .first - .toDartString(releaseOriginal: true), - 'hello', - ); - expect(annotated.nullableClassGenericListOfNullable(true), isNull); - expect( - (annotated.nullableClassGenericListOfNullable( - false, - )! - ..releasedBy(arena)) - .first, - isNull, - ); + test('Method generic methods with one object arg', () { + using((arena) { + final annotated = newTestObject(arena); + final object = 'hello'.toJString()..releasedBy(arena); + expect( + annotated + .methodGenericEcho(object) + // Cannot make it non-nullable. + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + .methodGenericEcho(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + .methodGenericEcho2(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + .methodGenericEcho3(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + // Requires `V`. + .nullableReturnMethodGenericEcho(object, false)! + // Cannot make it non-nullable. + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + // Requires `V`. + .nullableReturnMethodGenericEcho(object, true), + isNull, + ); + expect( + annotated + // `V` is optional. + .nullableReturnMethodGenericEcho2(object, false)! + // Cannot make it non-nullable. + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + // `V` is optional. + .nullableReturnMethodGenericEcho2(object, true), + isNull, + ); + expect( + annotated.nullableMethodGenericEcho(null), + isNull, + ); + expect( + annotated + .nullableMethodGenericEcho(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + .nullableMethodGenericEcho(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated.noAnnotationMethodGenericEcho(null), + isNull, + ); + expect( + annotated + .noAnnotationMethodGenericEcho(object)! + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + // With no annotations, specifying a non-nullable type still + // requires `!`. + .noAnnotationMethodGenericEcho(object)! + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + annotated + .nullableArgMethodGenericEcho(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + expect( + () => annotated.nullableArgMethodGenericEcho(null), + throwsA(isA()), + ); + expect( + annotated + .nullableArgMethodGenericEcho(object) + .toDartString(releaseOriginal: true), + 'hello', + ); + }); }); - }); - }); - group('Enums', () { - test('Color', () { - using((arena) { - final red = Colors.red..releasedBy(arena); - final green = Colors.green..releasedBy(arena); - final blue = Colors.blue..releasedBy(arena); - expect(red.code, 0xFF0000); - expect(green.code, 0x00FF00); - expect(blue.code, 0x0000FF); - expect( - red.toRGB()!..releasedBy(arena), - Colors$RGB(255, 0, 0)..releasedBy(arena), - ); - expect( - green.toRGB()!..releasedBy(arena), - Colors$RGB(0, 255, 0)..releasedBy(arena), - ); - expect( - blue.toRGB()!..releasedBy(arena), - Colors$RGB(0, 0, 255)..releasedBy(arena), - ); + test('Class generic list methods', () { + using((arena) { + final annotated = newNonNullTestObject(arena); + expect( + (annotated.classGenericList()..releasedBy(arena)) + .first + .toDartString( + releaseOriginal: true, + ), + 'hello', + ); + expect( + (annotated.classGenericListOfNullable()..releasedBy(arena)).first, + isNull, + ); + expect(annotated.nullableClassGenericList(true), isNull); + expect( + (annotated.nullableClassGenericList( + false, + )! + ..releasedBy(arena)) + .first + .toDartString(releaseOriginal: true), + 'hello', + ); + expect(annotated.nullableClassGenericListOfNullable(true), isNull); + expect( + (annotated.nullableClassGenericListOfNullable( + false, + )! + ..releasedBy(arena)) + .first, + isNull, + ); + }); }); }); - }); - group('$groupName (load tests)', () { - const k4 = 4 * 1024; // This is a round number, unlike say 4000 - const k256 = 256 * 1024; - test('Create large number of JNI references without deleting', () { - for (var i = 0; i < k4; i++) { - final e = Example.new$1(i); - expect(e.getNumber(), equals(i)); - } - }); - test('Create many JNI refs with scoped deletion', () { - for (var i = 0; i < k256; i++) { + group('Enums', () { + test('Color', () { using((arena) { - final e = Example.new$1(i)..releasedBy(arena); - expect(e.getNumber(), equals(i)); + final red = Colors.red..releasedBy(arena); + final green = Colors.green..releasedBy(arena); + final blue = Colors.blue..releasedBy(arena); + expect(red.code, 0xFF0000); + expect(green.code, 0x00FF00); + expect(blue.code, 0x0000FF); + expect( + red.toRGB()!..releasedBy(arena), + Colors$RGB(255, 0, 0)..releasedBy(arena), + ); + expect( + green.toRGB()!..releasedBy(arena), + Colors$RGB(0, 255, 0)..releasedBy(arena), + ); + expect( + blue.toRGB()!..releasedBy(arena), + Colors$RGB(0, 0, 255)..releasedBy(arena), + ); }); - } + }); }); - test('Create many JNI refs with scoped deletion, in batches', () { - for (var i = 0; i < 256; i++) { - using((arena) { - for (var i = 0; i < 1024; i++) { + + group('$groupName (load tests)', () { + const k4 = 4 * 1024; // This is a round number, unlike say 4000 + const k256 = 256 * 1024; + test('Create large number of JNI references without deleting', () { + for (var i = 0; i < k4; i++) { + final e = Example.new$1(i); + expect(e.getNumber(), equals(i)); + } + }); + test('Create many JNI refs with scoped deletion', () { + for (var i = 0; i < k256; i++) { + using((arena) { final e = Example.new$1(i)..releasedBy(arena); expect(e.getNumber(), equals(i)); + }); + } + }); + test('Create many JNI refs with scoped deletion, in batches', () { + for (var i = 0; i < 256; i++) { + using((arena) { + for (var i = 0; i < 1024; i++) { + final e = Example.new$1(i)..releasedBy(arena); + expect(e.getNumber(), equals(i)); + } + }); + } + }); + test('Create large number of JNI refs with manual delete', () { + for (var i = 0; i < k256; i++) { + final e = Example.new$1(i); + expect(e.getNumber(), equals(i)); + e.release(); + } + }); + test('Method returning primitive type does not create references', () { + using((arena) { + final e = Example.new$1(64)..releasedBy(arena); + for (var i = 0; i < k256; i++) { + expect(e.getNumber(), equals(64)); } }); - } - }); - test('Create large number of JNI refs with manual delete', () { - for (var i = 0; i < k256; i++) { - final e = Example.new$1(i); - expect(e.getNumber(), equals(i)); - e.release(); - } - }); - test('Method returning primitive type does not create references', () { - using((arena) { - final e = Example.new$1(64)..releasedBy(arena); + }); + test('Class references are cached', () { + final asterisk = '*'.codeUnitAt(0); for (var i = 0; i < k256; i++) { - expect(e.getNumber(), equals(64)); + expect(Fields.asterisk, equals(asterisk)); } }); - }); - test('Class references are cached', () { - final asterisk = '*'.codeUnitAt(0); - for (var i = 0; i < k256; i++) { - expect(Fields.asterisk, equals(asterisk)); + void testPassageOfTime(int n) { + test('Refs are not inadvertently deleted after $n seconds', () { + final f = Fields(); + expect(f.trillion, equals(trillion)); + sleep(Duration(seconds: n)); + expect(f.trillion, equals(trillion)); + }); } - }); - void testPassageOfTime(int n) { - test('Refs are not inadvertently deleted after $n seconds', () { - final f = Fields(); - expect(f.trillion, equals(trillion)); - sleep(Duration(seconds: n)); - expect(f.trillion, equals(trillion)); - }); - } - if (!Platform.isAndroid) { - testPassageOfTime(1); - testPassageOfTime(4); - } + if (!Platform.isAndroid) { + testPassageOfTime(1); + testPassageOfTime(4); + } + }); }); }