{"id":18623650,"url":"https://github.com/devan-kerman/signatureutil","last_synced_at":"2025-06-23T12:35:09.924Z","repository":{"id":111233080,"uuid":"340697671","full_name":"Devan-Kerman/SignatureUtil","owner":"Devan-Kerman","description":"an api for parsing ASM signatures","archived":false,"fork":false,"pushed_at":"2021-02-20T17:34:36.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-17T06:41:00.875Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Devan-Kerman.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":"2021-02-20T16:19:28.000Z","updated_at":"2021-02-20T17:34:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"3e096f30-db6c-42ca-8a0a-3ba0feac7ec7","html_url":"https://github.com/Devan-Kerman/SignatureUtil","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Devan-Kerman/SignatureUtil","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devan-Kerman%2FSignatureUtil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devan-Kerman%2FSignatureUtil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devan-Kerman%2FSignatureUtil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devan-Kerman%2FSignatureUtil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Devan-Kerman","download_url":"https://codeload.github.com/Devan-Kerman/SignatureUtil/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devan-Kerman%2FSignatureUtil/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261479977,"owners_count":23164810,"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":[],"created_at":"2024-11-07T04:25:32.152Z","updated_at":"2025-06-23T12:35:04.907Z","avatar_url":"https://github.com/Devan-Kerman.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SignatureUtil\nAn actually good signature api for asm signatures.\n\nOn Jitpack\n\n[![](https://jitpack.io/v/Devan-Kerman/SignatureUtil.svg)](https://jitpack.io/#Devan-Kerman/SignatureUtil)\n```gradle\nrepositories {\n\tmaven { url 'https://jitpack.io' }\n}\n\ndependencies {\n\t// don't worry I never break compat\n\timplementation 'com.github.Devan-Kerman:SignatureUtil:-SNAPSHOT'\n}\n```\n\n```java\nimport java.util.ArrayList;\n\nimport net.devtech.signutil.v0.api.*;\nimport net.devtech.signutil.v0.api.bounded.*;\nimport net.devtech.signutil.v0.api.type.*;\nimport net.devtech.signutil.v0.api.type.reference.*;\n\npublic class Examples {\n\tpublic void classSignatures() {\n\t\tClassSignature signature = ClassSignature.create(\n\t\t\t\t\"\u003cT:Ljava/lang/Object;V::Ljava/lang/Runnable;\u003eLjava/lang/ref/Reference\u003cTV;\u003e;Ljava/util/function/Consumer\u003cTT;\u003e;\");\n\n\t\t// read and parse signatures\n\t\tList\u003cTypeParameter\u003e parameters = signature.getTypeParameters();\n\t\tfor (TypeParameter parameter : parameters) {\n\t\t\t// T, V\n\t\t\tSystem.out.println(parameter.getIdentifier());\n\t\t\t// Ljava/lang/Object;\n\t\t\tSystem.out.println(parameter.getClassBound());\n\t\t\t// [], [Ljava/lang/Runnable;]\n\t\t\tSystem.out.println(parameter.getInterfaceBounds());\n\t\t}\n\n\t\t// generate and modify signatures\n\t\tList\u003cTypeParameter\u003e change = new ArrayList\u003c\u003e(parameters);\n\t\tchange.set(0, change.get(0).withIdentifier(\"C\")); // T -\u003e C\n        \n        // \u003cC:Ljava/lang/Object;V::Ljava/lang/Runnable;\u003eLjava/lang/ref/Reference\u003cTV;\u003e;Ljava/util/function/Consumer\u003cTT;\u003e;\n        System.out.println(signature.withTypeParameters());\n\t}\n\t\n\t// there's MethodSignature too!\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevan-kerman%2Fsignatureutil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevan-kerman%2Fsignatureutil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevan-kerman%2Fsignatureutil/lists"}