)]}'
{
  "commit": "15668264a51828689717b35530ae7e9512297665",
  "tree": "3f0bea5bc74cb24698c22b44fbcf9665cfa3ea0f",
  "parents": [
    "64fec925f93a053beaf3ae69cbedfa79bfb2fbef"
  ],
  "author": {
    "name": "Hossein Yousefi",
    "email": "yousefi@google.com",
    "time": "Thu Mar 16 15:15:32 2023 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Mar 16 15:15:32 2023 +0100"
  },
  "message": "[jnigen] Refactor into Visitor pattern (https://github.com/dart-lang/jnigen/issues/200)\n\nIntroducing a top-level `Classes` class which includes all the classes we\u0027re trying to generate as yet another element, makes each step of the code generation pipeline, feel the same. For example exclusion of classes and methods are now both done via actually removing the objects instead of setting an `isIncluded` flag. \r\n\r\nThis `Classes` object will go through a pipeline of:\r\n\r\n1. `Excluder` – excludes the unwanted classes, the private ones and the ones specified by the user.\r\n2. `Linker` – links up the objects together to create a graph.\r\n3. `Renamer` – renames the classes, methods, fields, ... not to clash with other reserved names.\r\n4. `DartGenerator` – generates and writes to files.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "00d47a9a2d80fa52397033f0189ddb4ff05863c5",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/analysis_options.yaml",
      "new_id": "063baccc709f43949ba4b20a6b75df51cec5d196",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/analysis_options.yaml"
    },
    {
      "type": "modify",
      "old_id": "082b10514e0897a12453ee93833f665eb7e88f4f",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/example/in_app_java/lib/android_utils.dart",
      "new_id": "75abb32a090ae87bae4eea062943a29ac729dd0f",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/example/in_app_java/lib/android_utils.dart"
    },
    {
      "type": "modify",
      "old_id": "e5c8331a685d9b8129278b79688b6e5924f6c4cc",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/example/kotlin_plugin/lib/kotlin_bindings.dart",
      "new_id": "f508dacda525f227c3c6559e1f80d4d8a9feb589",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/example/kotlin_plugin/lib/kotlin_bindings.dart"
    },
    {
      "type": "modify",
      "old_id": "853f2a9979ffb0c3283896bfd80cd9ee672ab969",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/example/notification_plugin/lib/notifications.dart",
      "new_id": "028904a1fe6053fddaeb3a657fe190e2c5792de1",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/example/notification_plugin/lib/notifications.dart"
    },
    {
      "type": "modify",
      "old_id": "3ff6a53661b17156b38818e2f1132ce61c184f27",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocument.dart",
      "new_id": "15e060e0e84676684eb615e8a5c85adc39af4b2d",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocument.dart"
    },
    {
      "type": "modify",
      "old_id": "0ea6ad6b69cfa684abc475aba0b512966882ab55",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocumentInformation.dart",
      "new_id": "30e40767b62085ef32fa0aa73dd6527de020c77e",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocumentInformation.dart"
    },
    {
      "type": "modify",
      "old_id": "2094a0b41d8d00f344df5281defe41c91b8a85c0",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/PDFTextStripper.dart",
      "new_id": "aff6055f95433bdeb693c43c3e7819a6ea4ed52a",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/PDFTextStripper.dart"
    },
    {
      "type": "delete",
      "old_id": "27bd35e1e94f5f0eafaa26b889df9e136b8680d9",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/bindings.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "488e3d8edbcc4b271f03025ba8b5be18327c0084",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/c_bindings.dart",
      "new_id": "f57e79c21bd80ba2637da0f1cdbac513be8224af",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/c_bindings.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "97b2604d2e9efb9622d3ae450afbacf53d68dadf",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/c_generator.dart"
    },
    {
      "type": "delete",
      "old_id": "480a038bcab2767a0951274ce8e5e2d1e9518ee1",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/common.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d1ad5763935360ddc0e2c7f3f9a743d477758e93",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/dart_bindings.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6ae33960b0fc356aa95f8ee102a103a0bd068488",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/dart_generator.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "88beefd22e2052b9fb45760c79f26506ebd42445",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/excluder.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f4fe617bb93b12837841bea530aea5b195b5faff",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/linker.dart"
    },
    {
      "type": "delete",
      "old_id": "0003f223f04fd778fb12bbe58fdca4240a285c1b",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/preprocessor.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "67ceeed848d6e1fa8183e2d0d673c20ebd27a241",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/pure_dart_bindings.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9fbda924f644971f32d2fff591edaf644e4c3ed",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/renamer.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cc7a45eb4ba38691e40e53eaec20dd641b07b8cc",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/resolver.dart"
    },
    {
      "type": "delete",
      "old_id": "4b158b9bba13d553904a26fe5cfa237ee2c105da",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/bindings/symbol_resolver.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8454cacc9d247dfd43535653f4c450413a491ce6",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/bindings/visitor.dart"
    },
    {
      "type": "modify",
      "old_id": "9918b06dd84dfd5b0c030784c17766c108d579ef",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/config/config_types.dart",
      "new_id": "48d6ee07210e3877800a6142a83fca6ec8c10d34",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/config/config_types.dart"
    },
    {
      "type": "modify",
      "old_id": "962a135de0aef8a5ebd2927e681e40a7900a9d62",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/config/filters.dart",
      "new_id": "1d0e1a5a4c3bba572a18b82ba532b8e342b81bc3",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/config/filters.dart"
    },
    {
      "type": "modify",
      "old_id": "1edefc4e46b70c65143b2f6101836d05232dc6a9",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/elements/elements.dart",
      "new_id": "73476650d0dbcf96f35ed006ce10a6765c782097",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/elements/elements.dart"
    },
    {
      "type": "modify",
      "old_id": "64e60f74a31b93c05b5ee77db76e27e8c6adc3cc",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/elements/elements.g.dart",
      "new_id": "2f099138e5d27f2165e193b920fdc9337362c18c",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/elements/elements.g.dart"
    },
    {
      "type": "modify",
      "old_id": "b70cf8ca8c9e14b498b6de64664e5c7a0cc7c89a",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/generate_bindings.dart",
      "new_id": "9c1202d1517b5efdda2051ff175fcfec95388698",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/generate_bindings.dart"
    },
    {
      "type": "modify",
      "old_id": "900f7f3b0d57ccce4fab6c22c582c84a5f813c00",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/summary/summary.dart",
      "new_id": "4580dbedb4a85d36771e5625e802a3140e34979f",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/summary/summary.dart"
    },
    {
      "type": "modify",
      "old_id": "703db13872f2179477952ce5ec6af570cec2750c",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/tools/android_sdk_tools.dart",
      "new_id": "48fe3b4ae5c772ef8f3f16c45dc0da5efe82c243",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/tools/android_sdk_tools.dart"
    },
    {
      "type": "modify",
      "old_id": "38e395ecae434a3d2cdba78216dad906e235fb99",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/tools/build_summarizer.dart",
      "new_id": "2647bc8e6d1d1d2d22bf87b09e1233b585e10b71",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/tools/build_summarizer.dart"
    },
    {
      "type": "modify",
      "old_id": "07ce7644a12a82f774832259f09ab612c15b81c7",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/tools/maven_tools.dart",
      "new_id": "82ebdc7bdc25142838c8faa64bd8fe35ebef132e",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/tools/maven_tools.dart"
    },
    {
      "type": "delete",
      "old_id": "1e7a9e058ff5cedb4612d8794b9c08ba5727ed42",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/util/command_output.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "96d0c833b2f3ae7dcdaadf5c3cedfa784fdce08a",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/util/name_utils.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "7971d504a6f98cc54973cd1bad1177c00177e1e3",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/util/rename_conflict.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "1cfd58e86eaa27002879749b28b23fd763829dcb",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/writers/bindings_writer.dart",
      "new_id": "a31b3d7780b7899945fb027c46b2f212b1fe5e52",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/lib/src/writers/bindings_writer.dart"
    },
    {
      "type": "delete",
      "old_id": "79904f049f9af5b2a935b41ab3e72d5c7d4d66b7",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/writers/files_writer.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "438f867e5a8b38a582a5c7d00066f8a28f0ab84c",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/writers/single_file_writer.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "0d2ca4463a463428d7750cd631a0d17e40a564dd",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/lib/src/writers/writers.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "d464b6cf6a2e13ff40ac315e489cb9598dfd1581",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/jackson_core_test/generated_files_test.dart",
      "new_id": "75dde7d424fbda02e6c13906c214a00434ecad22",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/jackson_core_test/generated_files_test.dart"
    },
    {
      "type": "modify",
      "old_id": "7f85005d1ecb67a3c0259e6b5452c9e4fe95f04e",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/_init.dart",
      "new_id": "eec3a8c1412f3ea9ee61576976bf2ad545fefbb3",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/_init.dart"
    },
    {
      "type": "modify",
      "old_id": "2cb23c07e238bb9fb7f2e585a2a46a22cf2680b2",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/com/fasterxml/jackson/core/JsonFactory.dart",
      "new_id": "9c8decbdf0893f5ef513b73bfebd3bb3f63c12fb",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/com/fasterxml/jackson/core/JsonFactory.dart"
    },
    {
      "type": "modify",
      "old_id": "4f453370dc58cefc141b4bb37a0fc0748c6409a2",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/com/fasterxml/jackson/core/JsonParser.dart",
      "new_id": "c37156055b13be125f9335646ad1a681b8d74b63",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/com/fasterxml/jackson/core/JsonParser.dart"
    },
    {
      "type": "modify",
      "old_id": "8c3bc75c93eb5bf9a27e172c3010113bd4c5f7e1",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/com/fasterxml/jackson/core/JsonToken.dart",
      "new_id": "84d23d7bbc4ee490946f81895211151cc29fa913",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/jackson_core_test/third_party/lib/com/fasterxml/jackson/core/JsonToken.dart"
    },
    {
      "type": "modify",
      "old_id": "aaf5b7e935c3f271a98908005f031420a3ae2133",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/kotlin_test/lib/kotlin.dart",
      "new_id": "7546dedddbfd90754915f80f32509490039d0dbc",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/kotlin_test/lib/kotlin.dart"
    },
    {
      "type": "modify",
      "old_id": "7645e129f3c5f61cb296c5edd827c3ea84c94d97",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/package_resolver_test.dart",
      "new_id": "39b8998876434287877c9197737a7b6de21ce1c6",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/package_resolver_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b49da06e00cdb2932ee0b64aba5670b6f035c6c6",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/regenerate_examples_test.dart",
      "new_id": "0e2ac62abf5679a675dd9a0ca8e0c0f6196c8b62",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/regenerate_examples_test.dart"
    },
    {
      "type": "modify",
      "old_id": "0f6841c4899311232291a0b8a288ca52794110a5",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/simple_package_test/lib/simple_package.dart",
      "new_id": "c38553f6258e3e5dd17e2966ea287d1c91d08d0d",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/simple_package_test/lib/simple_package.dart"
    },
    {
      "type": "modify",
      "old_id": "198457dc44150929d59b99c115d11f7ef1e56686",
      "old_mode": 33188,
      "old_path": "pkgs/jnigen/test/yaml_config_test.dart",
      "new_id": "e995b6ac2f828f534ae19d635b2cf6d7dcbf6aa7",
      "new_mode": 33188,
      "new_path": "pkgs/jnigen/test/yaml_config_test.dart"
    }
  ]
}
