Skip to content

Commit

Permalink
Add convenience methods mirroring ReflectiveClassBuildItem factory me…
Browse files Browse the repository at this point in the history
…thods

Revert changes to call sites

Add convenience methods mirroring ReflectiveClassBuildItem factory methods
  • Loading branch information
metacosm committed Feb 9, 2024
1 parent 0985e28 commit 9f0a591
Showing 1 changed file with 63 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,49 @@ public String getSource() {
return source;
}

/**
* Creates a new {@link Builder} instance, using the specified class for the underlying {@link Type} which hierarchy is to
* be be registered for reflection.
*
* @param clazz the Class which hierarchy is to be registered for reflection
* @return a new {@link Builder} instance, initialized from the specified Class
*/
public static Builder builder(Class<?> clazz) {
return builder(clazz.getName());
}

/**
* Creates a new {@link Builder} instance, using the specified class for the underlying {@link Type} which hierarchy is to
* be be registered for reflection.
*
* @param className the name of the Class which hierarchy is to be registered for reflection
* @return a new {@link Builder} instance, initialized from the specified Class
*/
public static Builder builder(String className) {
return builder(DotName.createSimple(className));
}

/**
* Creates a new {@link Builder} instance, using the specified class for the underlying {@link Type} which hierarchy is to
* be be registered for reflection.
*
* @param className the {@link DotName} of the Class which hierarchy is to be registered for reflection
* @return a new {@link Builder} instance, initialized from the specified Class
*/
public static Builder builder(DotName className) {
return builder(Type.create(className, Type.Kind.CLASS));
}

/**
* Creates a new {@link Builder} instance, initializing it with the specified {@link Type}
*
* @param type the {@link Type} which hierarchy is to be registered for reflection
* @return a new {@link Builder} instance, initialized from the specified {@link Type}
*/
public static Builder builder(Type type) {
return new Builder().type(type);
}

public static class Builder {

private Type type;
Expand All @@ -167,6 +210,26 @@ public Builder type(Type type) {
return this;
}

/**
* Derives the target {@link Type} to be registered from the specified class name.
*
* @param className a {@link DotName} representing the name of the class of the Type to be registered for reflection
* @return this {@link Builder} instance
*/
public Builder className(DotName className) {
return type(Type.create(className, Type.Kind.CLASS));
}

/**
* Derives the target {@link Type} to be registered from the specified class name.
*
* @param className the name of the class of the Type to be registered for reflection
* @return this {@link Builder} instance
*/
public Builder className(String className) {
return className(DotName.createSimple(className));
}

public Builder index(IndexView index) {
this.index = index;
return this;
Expand Down

0 comments on commit 9f0a591

Please sign in to comment.