{"id":16558905,"url":"https://github.com/gmazzo/autopojo","last_synced_at":"2026-06-06T17:31:49.756Z","repository":{"id":145163710,"uuid":"123218217","full_name":"gmazzo/autopojo","owner":"gmazzo","description":"A Plain-Old-Java-Object annotation processing tool that generates code from a describing model interface","archived":false,"fork":false,"pushed_at":"2018-03-05T02:51:42.000Z","size":105,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-15T12:10:26.806Z","etag":null,"topics":["annotation","annotation-processor","java","plain-objects","pojo"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gmazzo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-28T02:36:26.000Z","updated_at":"2018-03-02T18:13:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"aea62dd7-9633-4de0-a469-af08b4f7e770","html_url":"https://github.com/gmazzo/autopojo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmazzo%2Fautopojo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmazzo%2Fautopojo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmazzo%2Fautopojo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmazzo%2Fautopojo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gmazzo","download_url":"https://codeload.github.com/gmazzo/autopojo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241950146,"owners_count":20047591,"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","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":["annotation","annotation-processor","java","plain-objects","pojo"],"created_at":"2024-10-11T20:24:05.550Z","updated_at":"2026-06-06T17:31:49.605Z","avatar_url":"https://github.com/gmazzo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# autopojo\nA Plain-Old-Java-Object annotation processing tool that generates code from a describing model interface\n\n## How it works\nThis project is an **annotation processor** that takes any **@POJO interface** (classes are not allowed)\ndescribing its properties with simple *no-args* methods, and it generate concrete classes\nwith private **fields**, and public **getter**s and **setter**s. Optionally it can also generate a **builder**.\n\nLike *[Dagger](https://github.com/google/dagger)'s modules*, those interfaces should not be used for anything else than code generation. \nYou should relay in some *ProGuard* solution to strip them out from your final code.\n\n## Import\nOn your `build.gradle` add:\n```groovy\ndependencies {\n    annotationProcessor 'com.github.gmazzo.autopojo:autopojo-processor:0.1'\n\n    implementation 'com.github.gmazzo.autopojo:autopojo-annotations:0.1'\n}\n```\n[![Download](https://api.bintray.com/packages/gmazzo/maven/autopojo/images/download.svg) ](https://bintray.com/gmazzo/maven/autopojo/_latestVersion)\n\n## Usage\nGiven an **interface** like:\n\n```java\n@POJO\npublic interface PersonPOJO {\n\n    int id();\n\n    String name();\n\n}\n```\n\nAutoPOJO will generate:\n\n```java\nimport java.lang.String;\nimport javax.annotation.Generated;\n\n@Generated(\"gs.autopojo.processor.POJOProcessor\")\npublic class Person {\n  private int id;\n\n  private String name;\n\n  public int getId() {\n    return id;\n  }\n\n  public void setId(int id) {\n    this.id = id;\n  }\n\n  public String getName() {\n    return name;\n  }\n\n  public void setName(String name) {\n    this.name = name;\n  }\n\n  public static class Builder {\n    private int id;\n\n    private String name;\n\n    public int id() {\n      return id;\n    }\n\n    public Builder id(int id) {\n      this.id = id;\n      return this;\n    }\n\n    public String name() {\n      return name;\n    }\n\n    public Builder name(String name) {\n      this.name = name;\n      return this;\n    }\n\n    protected void fillInstance(Person instance) {\n      instance.id = id;\n      instance.name = name;\n    }\n\n    public Person build() {\n      Person instance = new Person();\n      fillInstance(instance);\n      return instance;\n    }\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgmazzo%2Fautopojo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgmazzo%2Fautopojo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgmazzo%2Fautopojo/lists"}