package org.minimallycorrect.javatransformer.api;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.ToString;

import java.util.*;
import java.util.function.*;

@Getter
@ToString
public class Parameter implements Annotated {
	public final String name;
	public final Type type;
	@Getter(AccessLevel.NONE)
	private final Supplier<List<Annotation>> annotationSupplier;

	public Parameter(Type type, String name) {
		this(type, name, null);
	}

	public Parameter(Type type, String name, Supplier<List<Annotation>> annotationSupplier) {
		this.type = type;
		this.name = name;
		this.annotationSupplier = annotationSupplier;
	}

	@Override
	public List<Annotation> getAnnotations() {
		if (annotationSupplier == null)
			return null;
		return annotationSupplier.get();
	}
}

@@ -62,117 +62,157 @@
 bok.
-AccessLevel;%0Aimport lombok.Getter;%0Aimport lombok.ToString;%0A%0Aimport java.util.*;%0Aimport java.util.function.*;%0A
+*;%0Aimport org.jetbrains.annotations.Nullable;%0A%0Aimport java.util.*;%0Aimport java.util.function.*;%0A%0A@EqualsAndHashCode(exclude = %7B%22annotationSupplier%22%7D)
 %0A@Ge
@@ -272,16 +272,27 @@
 tated %7B%0A
+%09@Nullable%0A
 %09public 
@@ -310,16 +310,26 @@
 g name;%0A
+%09@NonNull%0A
 %09public 

Use @EqualsAndHashCode for Parameter