[jnigen] remove simpleName and packageName (https://github.com/dart-lang/jnigen/issues/294)

diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotatedElementVisitor.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotatedElementVisitor.java
index ca39167..0a723b3 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotatedElementVisitor.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotatedElementVisitor.java
@@ -17,7 +17,6 @@
     var annotation = new JavaAnnotation();
     var aType = Type.getType(descriptor);
     annotation.binaryName = aType.getClassName();
-    annotation.simpleName = TypeUtils.simpleName(aType);
     addAnnotation(annotation);
     return new AsmAnnotationVisitor(annotation);
   }
diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotationVisitor.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotationVisitor.java
index 9f6d5e2..1323a45 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotationVisitor.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmAnnotationVisitor.java
@@ -35,7 +35,6 @@
     var type = Type.getType(descriptor);
     var nested = new JavaAnnotation();
     nested.binaryName = type.getClassName();
-    nested.simpleName = TypeUtils.simpleName(type);
     annotation.properties.put(name, nested);
     return new AsmAnnotationVisitor(nested);
   }
@@ -71,7 +70,6 @@
       var type = Type.getType(descriptor);
       var nested = new JavaAnnotation();
       nested.binaryName = type.getClassName();
-      nested.simpleName = TypeUtils.simpleName(type);
       list.add(nested);
       return new AsmAnnotationVisitor(nested);
     }
diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmClassVisitor.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmClassVisitor.java
index f542fe8..061f3b4 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmClassVisitor.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/AsmClassVisitor.java
@@ -48,9 +48,7 @@
     current.binaryName = type.getClassName();
     current.modifiers = TypeUtils.access(access);
     current.parentName = TypeUtils.parentName(type);
-    current.packageName = TypeUtils.packageName(type);
     current.declKind = TypeUtils.declKind(access);
-    current.simpleName = TypeUtils.simpleName(type);
     current.superclass = TypeUtils.typeUsage(Type.getObjectType(superName), null);
     current.interfaces =
         StreamUtil.map(interfaces, i -> TypeUtils.typeUsage(Type.getObjectType(i), null));
diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/TypeUtils.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/TypeUtils.java
index 70b075a..7cb6f1e 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/TypeUtils.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/disasm/TypeUtils.java
@@ -23,15 +23,6 @@
     return type.getClassName().split("\\$")[0];
   }
 
-  public static String packageName(Type type) {
-    var className = type.getClassName();
-    var last = className.lastIndexOf(".");
-    if (last != -1) {
-      return className.substring(0, last);
-    }
-    return null;
-  }
-
   public static String simpleName(Type type) {
     var internalName = type.getInternalName();
     if (type.getInternalName().length() == 1) {
diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/doclet/ElementBuilders.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/doclet/ElementBuilders.java
index d128815..d0f2301 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/doclet/ElementBuilders.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/doclet/ElementBuilders.java
@@ -22,7 +22,6 @@
 
   private void fillInFromTypeElement(TypeElement e, ClassDecl c) {
     c.modifiers = e.getModifiers().stream().map(Modifier::toString).collect(Collectors.toSet());
-    c.simpleName = e.getSimpleName().toString();
     c.binaryName = env.elements.getBinaryName(e).toString();
     switch (e.getKind()) {
       case INTERFACE:
@@ -45,7 +44,6 @@
     if (parent instanceof TypeElement) {
       c.parentName = env.elements.getBinaryName((TypeElement) parent).toString();
     }
-    c.packageName = env.elements.getPackageOf(e).getQualifiedName().toString();
     c.javadoc = docComment(env.trees.getDocCommentTree(e));
     c.typeParams = StreamUtil.map(e.getTypeParameters(), this::typeParam);
     var superclass = e.getSuperclass();
@@ -82,7 +80,6 @@
     var annotation = new JavaAnnotation();
     var type = mirror.getAnnotationType();
     var typeElement = (TypeElement) (env.types.asElement(type));
-    annotation.simpleName = typeElement.getSimpleName().toString();
     annotation.binaryName = env.elements.getBinaryName(typeElement).toString();
     var values = env.elements.getElementValuesWithDefaults(mirror);
     if (values.isEmpty()) {
diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/ClassDecl.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/ClassDecl.java
index 42e069e..e439ab9 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/ClassDecl.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/ClassDecl.java
@@ -21,9 +21,6 @@
   /** Modifiers eg: static, public and abstract. */
   public Set<String> modifiers;
 
-  /** Unqualified name of the class. For example `ClassDecl` */
-  public String simpleName;
-
   /**
    * Unique, fully qualified name of the class, it's like a qualified name used in a program but
    * uses $ instead of dot (.) before nested classes.
@@ -31,7 +28,6 @@
   public String binaryName;
 
   public String parentName;
-  public String packageName;
   public List<TypeParam> typeParams = new ArrayList<>();
   public List<Method> methods = new ArrayList<>();
   public List<Field> fields = new ArrayList<>();
diff --git a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/JavaAnnotation.java b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/JavaAnnotation.java
index 89460bc..c463cba 100644
--- a/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/JavaAnnotation.java
+++ b/pkgs/jnigen/java/src/main/java/com/github/dart_lang/jnigen/apisummarizer/elements/JavaAnnotation.java
@@ -8,7 +8,6 @@
 import java.util.Map;
 
 public class JavaAnnotation {
-  public String simpleName;
   public String binaryName;
   public Map<String, Object> properties = new HashMap<>();
 
diff --git a/pkgs/jnigen/lib/src/bindings/c_generator.dart b/pkgs/jnigen/lib/src/bindings/c_generator.dart
index ee30572..7ca6ef1 100644
--- a/pkgs/jnigen/lib/src/bindings/c_generator.dart
+++ b/pkgs/jnigen/lib/src/bindings/c_generator.dart
@@ -262,7 +262,6 @@
     if (node.isCtor) {
       javaReturnType = DeclaredType(
         binaryName: node.classDecl.binaryName,
-        simpleName: node.classDecl.simpleName,
       );
     }
     final callType = node.returnType.accept(const _CTypeCallSite());
diff --git a/pkgs/jnigen/lib/src/bindings/linker.dart b/pkgs/jnigen/lib/src/bindings/linker.dart
index 74c14e7..cdddaf5 100644
--- a/pkgs/jnigen/lib/src/bindings/linker.dart
+++ b/pkgs/jnigen/lib/src/bindings/linker.dart
@@ -148,7 +148,7 @@
     if (config.suspendFunToAsync &&
         node.params.isNotEmpty &&
         node.params.last.type.kind == Kind.declared &&
-        node.params.last.type.shorthand == kotlinContinutationType) {
+        node.params.last.type.name == kotlinContinutationType) {
       final continuationType = node.params.last.type.type as DeclaredType;
       node.asyncReturnType = continuationType.params.isEmpty
           ? TypeUsage.object
diff --git a/pkgs/jnigen/lib/src/config/config_types.dart b/pkgs/jnigen/lib/src/config/config_types.dart
index 2c659a0..63a418c 100644
--- a/pkgs/jnigen/lib/src/config/config_types.dart
+++ b/pkgs/jnigen/lib/src/config/config_types.dart
@@ -395,8 +395,6 @@
             );
           }
           final classDecl = ClassDecl(
-            simpleName: binaryName.split('.').last,
-            packageName: (binaryName.split('.')..removeLast()).join('.'),
             binaryName: binaryName,
           )
             ..path = '$importPath/$filePath'
@@ -423,14 +421,15 @@
                   : Kind.typeVariable;
               final ReferredType type;
               if (boundKind == Kind.declared) {
-                type =
-                    DeclaredType(binaryName: boundName, simpleName: boundName);
+                type = DeclaredType(binaryName: boundName);
               } else {
                 type = TypeVar(name: boundName);
               }
               return TypeUsage(
-                  shorthand: boundName, kind: boundKind, typeJson: {})
-                ..type = type;
+                shorthand: binaryName,
+                kind: boundKind,
+                typeJson: {},
+              )..type = type;
             }).toList();
             classDecl.allTypeParams.add(
               TypeParam(name: typeParamName, bounds: bounds),
diff --git a/pkgs/jnigen/lib/src/elements/elements.dart b/pkgs/jnigen/lib/src/elements/elements.dart
index 347c818..15f2f45 100644
--- a/pkgs/jnigen/lib/src/elements/elements.dart
+++ b/pkgs/jnigen/lib/src/elements/elements.dart
@@ -58,9 +58,7 @@
     this.annotations = const [],
     this.javadoc,
     this.modifiers = const {},
-    required this.simpleName,
     required this.binaryName,
-    this.packageName = '',
     this.parentName,
     this.typeParams = const [],
     this.methods = const [],
@@ -77,10 +75,8 @@
 
   final List<Annotation> annotations;
   final JavaDocComment? javadoc;
-  final String simpleName;
   final String binaryName;
   final String? parentName;
-  final String packageName;
   List<TypeParam> typeParams;
   List<Method> methods;
   List<Field> fields;
@@ -97,6 +93,8 @@
 
   String get internalName => binaryName.replaceAll(".", "/");
 
+  String get packageName => (binaryName.split('.')..removeLast()).join('.');
+
   /// The number of super classes this type has.
   ///
   /// Populated by [Linker].
@@ -195,9 +193,8 @@
   });
 
   static TypeUsage object = TypeUsage(
-      kind: Kind.declared, shorthand: 'JObject', typeJson: {})
-    ..type =
-        (DeclaredType(binaryName: 'java.lang.Object', simpleName: 'Object'));
+      kind: Kind.declared, shorthand: 'java.lang.Object', typeJson: {})
+    ..type = DeclaredType(binaryName: 'java.lang.Object');
 
   final String shorthand;
   final Kind kind;
@@ -356,12 +353,10 @@
 class DeclaredType extends ReferredType {
   DeclaredType({
     required this.binaryName,
-    required this.simpleName,
     this.params = const [],
   });
 
   final String binaryName;
-  final String simpleName;
   final List<TypeUsage> params;
 
   @JsonKey(includeFromJson: false)
@@ -608,12 +603,10 @@
 @JsonSerializable(createToJson: false)
 class Annotation implements Element<Annotation> {
   Annotation({
-    required this.simpleName,
     required this.binaryName,
     this.properties = const {},
   });
 
-  final String simpleName;
   final String binaryName;
   final Map<String, Object> properties;
 
diff --git a/pkgs/jnigen/lib/src/elements/elements.g.dart b/pkgs/jnigen/lib/src/elements/elements.g.dart
index 2f09913..20ce98c 100644
--- a/pkgs/jnigen/lib/src/elements/elements.g.dart
+++ b/pkgs/jnigen/lib/src/elements/elements.g.dart
@@ -18,9 +18,7 @@
               ?.map((e) => e as String)
               .toSet() ??
           const {},
-      simpleName: json['simpleName'] as String,
       binaryName: json['binaryName'] as String,
-      packageName: json['packageName'] as String? ?? '',
       parentName: json['parentName'] as String?,
       typeParams: (json['typeParams'] as List<dynamic>?)
               ?.map((e) => TypeParam.fromJson(e as Map<String, dynamic>))
@@ -63,7 +61,6 @@
 
 DeclaredType _$DeclaredTypeFromJson(Map<String, dynamic> json) => DeclaredType(
       binaryName: json['binaryName'] as String,
-      simpleName: json['simpleName'] as String,
       params: (json['params'] as List<dynamic>?)
               ?.map((e) => TypeUsage.fromJson(e as Map<String, dynamic>))
               .toList() ??
@@ -155,7 +152,6 @@
     );
 
 Annotation _$AnnotationFromJson(Map<String, dynamic> json) => Annotation(
-      simpleName: json['simpleName'] as String,
       binaryName: json['binaryName'] as String,
       properties: (json['properties'] as Map<String, dynamic>?)?.map(
             (k, e) => MapEntry(k, e as Object),
diff --git a/pkgs/jnigen/test/package_resolver_test.dart b/pkgs/jnigen/test/package_resolver_test.dart
index 2f3a2ea..8053b5a 100644
--- a/pkgs/jnigen/test/package_resolver_test.dart
+++ b/pkgs/jnigen/test/package_resolver_test.dart
@@ -21,11 +21,9 @@
     importedClasses: {
       'org.apache.pdfbox.pdmodel.PDDocument': ClassDecl(
         binaryName: 'org.apache.pdfbox.pdmodel.PDDocument',
-        simpleName: 'PDDocument',
       )..path = 'package:pdfbox/pdfbox.dart',
       'android.os.Process': ClassDecl(
         binaryName: 'android.os.Process',
-        simpleName: 'Process',
       )..path = 'package:android/os.dart',
     },
     currentClass: 'a.b.N',
@@ -72,8 +70,8 @@
     test(
         'resolve $binaryName',
         () => expect(
-            resolver.resolvePrefix(
-                ClassDecl(binaryName: binaryName, simpleName: '')..path = ''),
+            resolver
+                .resolvePrefix(ClassDecl(binaryName: binaryName)..path = ''),
             equals(testCase.expectedName)));
   }
 }