An open API service indexing awesome lists of open source software.

https://github.com/devan-kerman/signatureutil

an api for parsing ASM signatures
https://github.com/devan-kerman/signatureutil

Last synced: about 1 year ago
JSON representation

an api for parsing ASM signatures

Awesome Lists containing this project

README

          

# SignatureUtil
An actually good signature api for asm signatures.

On Jitpack

[![](https://jitpack.io/v/Devan-Kerman/SignatureUtil.svg)](https://jitpack.io/#Devan-Kerman/SignatureUtil)
```gradle
repositories {
maven { url 'https://jitpack.io' }
}

dependencies {
// don't worry I never break compat
implementation 'com.github.Devan-Kerman:SignatureUtil:-SNAPSHOT'
}
```

```java
import java.util.ArrayList;

import net.devtech.signutil.v0.api.*;
import net.devtech.signutil.v0.api.bounded.*;
import net.devtech.signutil.v0.api.type.*;
import net.devtech.signutil.v0.api.type.reference.*;

public class Examples {
public void classSignatures() {
ClassSignature signature = ClassSignature.create(
"Ljava/lang/ref/Reference;Ljava/util/function/Consumer;");

// read and parse signatures
List parameters = signature.getTypeParameters();
for (TypeParameter parameter : parameters) {
// T, V
System.out.println(parameter.getIdentifier());
// Ljava/lang/Object;
System.out.println(parameter.getClassBound());
// [], [Ljava/lang/Runnable;]
System.out.println(parameter.getInterfaceBounds());
}

// generate and modify signatures
List change = new ArrayList<>(parameters);
change.set(0, change.get(0).withIdentifier("C")); // T -> C

// Ljava/lang/ref/Reference;Ljava/util/function/Consumer;
System.out.println(signature.withTypeParameters());
}

// there's MethodSignature too!
}
```