{"id":16379075,"url":"https://github.com/derklaro/codegen","last_synced_at":"2025-09-12T02:33:55.381Z","repository":{"id":45379448,"uuid":"370270534","full_name":"derklaro/codegen","owner":"derklaro","description":"Gradle plugin for annotation based automatic data class generation from interfaces or abstract classes.","archived":false,"fork":false,"pushed_at":"2023-12-15T05:11:44.000Z","size":129,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-21T13:15:43.348Z","etag":null,"topics":["code-generation","gradle-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/derklaro.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-24T07:48:38.000Z","updated_at":"2021-05-28T20:09:16.000Z","dependencies_parsed_at":"2024-11-08T18:02:07.426Z","dependency_job_id":null,"html_url":"https://github.com/derklaro/codegen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/derklaro/codegen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derklaro%2Fcodegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derklaro%2Fcodegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derklaro%2Fcodegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derklaro%2Fcodegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/derklaro","download_url":"https://codeload.github.com/derklaro/codegen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derklaro%2Fcodegen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274744024,"owners_count":25341136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-generation","gradle-plugin"],"created_at":"2024-10-11T03:47:25.498Z","updated_at":"2025-09-12T02:33:55.343Z","avatar_url":"https://github.com/derklaro.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automated CodeGen [![Build Status](https://travis-ci.com/derklaro/codegen.svg?branch=master)](https://travis-ci.com/derklaro/codegen)\n\nThis project is designed for projects which have lots of data classes, which are just implementing a single interface or\nclass and having an enormous amount of fields in these classes. This project automatically generates these classes which\nmeans you can leave your data interfaces nice and clean and there is no need to mess around with them.\n\n## Compile time processing\n\nCompile time code processing is currently only available to gradle projects using the codegen gradle plugin.\n\n## Usage\n\nThe generator will generate implementation classes for all interfaces and abstract classes annotated with `@Generate`.\nFurther customization is done using the arguments of the annotation. The methods `toString`,\n`equals` and `hashCode` have their own annotation to be generated. Constructors can be enabled and customized\nusing `@Constructor`. Methods which fields should be non-final in a class can be marked with `@OptionalField`, the name\nof a field associated to a method can be customized using `@FieldName`. Wrapping the return value of a method can be\ndone using `@Wrap`. Factory methods for every constructor in the class can be generated using\n`@Factory`. The factory method can be created before compile with a special body, the compiler will replace the last\nreturn statement with a statement to the actual class constructor. `@Invoke` can specify the body of a specific method\nwhich cannot be generated in a convenient way. `@NonNull` will ensure that the parameter supplied to the method will be\nnon-null. Please read the documentation of the annotations for more information about the way they are working.\n\n## Support our work\n\nIf you like the project and want to support our work you can **star** :star2: the repository on github.\n\n## Developers\n\n##### Clone \u0026 build the project\n\n```\ngit clone https://github.com/derklaro/codegen.git\ncd codegen/\n./gradlew OR gradlew.bat\n```\n\n##### Enable the processing \u0026 start\n\nYou need the central repository when you want to use the plugin as well as jitpack:\n\n```groovy\nmaven {\n  name 'jitpack.io'\n  url 'https://jitpack.io'\n}\n```\n\nGradle's dependency to get access to the custom annotations for generation:\n\n```groovy\ncompile group: 'me.derklaro.codegen', name: 'annotations', version: '1.0.0-SNAPSHOT'\n```\n\nThe plugin can be used with:\n\n```groovy\nplugins {\n  id 'java'\n  id 'me.derklaro.codegen' version '1.0.0-SNAPSHOT'\n}\n```\n\n## Licence and copyright notice\n\nThe project is licenced under the [MIT Licence](https://github.com/derklaro/codegen/license.txt). All files are\nCopyright (c) 2020 Pasqual K. and all contributors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderklaro%2Fcodegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderklaro%2Fcodegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderklaro%2Fcodegen/lists"}