| // Copyright (c) 2022, 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. | |
| import '../core_bindings.dart'; | |
| import '../jni.dart'; | |
| import '../jobject.dart'; | |
| import '../jreference.dart'; | |
| extension JStringExtension on JString { | |
| /// The number of Unicode characters in this Java string. | |
| int get length => Jni.env.GetStringLength(reference.pointer); | |
| /// Returns the contents as a Dart String. | |
| /// | |
| /// If [releaseOriginal] is true, the underlying reference is deleted | |
| /// after conversion and this object will be marked as released. | |
| String toDartString({bool releaseOriginal = false}) { | |
| final result = Jni.env.toDartString(reference.pointer); | |
| if (releaseOriginal) { | |
| release(); | |
| } | |
| return result; | |
| } | |
| } | |
| extension ToJStringMethod on String { | |
| /// Returns a [JString] with the contents of this String. | |
| JString toJString() { | |
| return JObject.fromReference( | |
| JGlobalReference(Jni.env.toJStringPtr(this)), | |
| ) as JString; | |
| } | |
| } |