blob: 2d0408dcbaada51a3e885cef9f9639949083a44e [file] [log] [blame] [edit]
// Copyright (c) 2023, 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 'package:meta/meta.dart' show internal;
import '../jreference.dart';
import '../jvalues.dart';
import '../types.dart';
import 'jnumber.dart';
final class JIntegerNullableType extends JObjType<JInteger?> {
@internal
const JIntegerNullableType();
@internal
@override
String get signature => r'Ljava/lang/Integer;';
@internal
@override
JInteger? fromReference(JReference reference) =>
reference.isNull ? null : JInteger.fromReference(reference);
@internal
@override
JObjType get superType => const JNumberNullableType();
@internal
@override
JObjType<JInteger?> get nullableType => this;
@internal
@override
final superCount = 2;
@override
int get hashCode => (JIntegerNullableType).hashCode;
@override
bool operator ==(Object other) {
return other.runtimeType == JIntegerNullableType &&
other is JIntegerNullableType;
}
}
final class JIntegerType extends JObjType<JInteger> {
@internal
const JIntegerType();
@internal
@override
String get signature => r'Ljava/lang/Integer;';
@internal
@override
JInteger fromReference(JReference reference) =>
JInteger.fromReference(reference);
@internal
@override
JObjType get superType => const JNumberType();
@internal
@override
JObjType<JInteger?> get nullableType => const JIntegerNullableType();
@internal
@override
final superCount = 2;
@override
int get hashCode => (JIntegerType).hashCode;
@override
bool operator ==(Object other) {
return other.runtimeType == JIntegerType && other is JIntegerType;
}
}
class JInteger extends JNumber {
@internal
@override
// ignore: overridden_fields
final JObjType<JInteger> $type = type;
JInteger.fromReference(
super.reference,
) : super.fromReference();
/// The type which includes information such as the signature of this class.
static const type = JIntegerType();
/// The type which includes information such as the signature of this class.
static const nullableType = JIntegerNullableType();
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)]));
}