io.quarkiverse.mcp.server.deployment.FeatureMethodBuildItem Maven / Gradle / Ivy
The newest version!
package io.quarkiverse.mcp.server.deployment;
import java.util.Objects;
import org.jboss.jandex.MethodInfo;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.quarkus.arc.processor.BeanInfo;
import io.quarkus.arc.processor.InvokerInfo;
import io.quarkus.builder.item.MultiBuildItem;
final class FeatureMethodBuildItem extends MultiBuildItem {
private final BeanInfo bean;
private final InvokerInfo invoker;
private final String name;
private final String description;
private final MethodInfo method;
private final Feature feature;
// Resource-only
private final String uri;
private final String mimeType;
FeatureMethodBuildItem(BeanInfo bean, MethodInfo method, InvokerInfo invoker, String name, String description, String uri,
String mimeType, FeatureMetadata.Feature feature) {
this.bean = Objects.requireNonNull(bean);
this.method = Objects.requireNonNull(method);
this.invoker = Objects.requireNonNull(invoker);
this.feature = Objects.requireNonNull(feature);
this.name = Objects.requireNonNull(name);
this.description = description;
this.uri = feature == Feature.RESOURCE ? Objects.requireNonNull(uri) : null;
this.mimeType = mimeType;
}
BeanInfo getBean() {
return bean;
}
MethodInfo getMethod() {
return method;
}
InvokerInfo getInvoker() {
return invoker;
}
String getName() {
return name;
}
String getDescription() {
return description;
}
String getUri() {
return uri;
}
String getMimeType() {
return mimeType;
}
Feature getFeature() {
return feature;
}
boolean isTool() {
return feature == Feature.TOOL;
}
boolean isPrompt() {
return feature == Feature.PROMPT;
}
boolean isResource() {
return feature == Feature.RESOURCE;
}
@Override
public String toString() {
return "FeatureMethodBuildItem [name=" + name + ", method=" + method.declaringClass() + "#" + method.name()
+ "(), feature=" + feature + "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy