io.github.factoryfx.jetty.builder.ServletBuilder Maven / Gradle / Ivy
package io.github.factoryfx.jetty.builder;
import io.github.factoryfx.factory.FactoryBase;
import io.github.factoryfx.factory.builder.FactoryTemplateId;
import io.github.factoryfx.factory.builder.FactoryTreeBuilder;
import io.github.factoryfx.factory.builder.Scope;
import io.github.factoryfx.jetty.ServletAndPathFactory;
import javax.servlet.Servlet;
/**
* builder for a servlet. used internal in {@link JettyServerBuilder#withServlet(FactoryTemplateId, String, FactoryBase)}
* @param rootFactory
*/
public class ServletBuilder>{
private final String pathSpec;
private final FactoryBase extends Servlet, R> servlet;
private final FactoryTemplateId> templateId;
public ServletBuilder(FactoryTemplateId> templateId, String pathSpec, FactoryBase extends Servlet, R> servlet) {
this.pathSpec = pathSpec;
this.servlet = servlet;
this.templateId = templateId;
}
void build(FactoryTreeBuilder,R> builder){
builder.addFactory(templateId, Scope.PROTOTYPE , (ctx)->{
ServletAndPathFactory servletAndPathFactory = new ServletAndPathFactory<>();
servletAndPathFactory.pathSpec.set(pathSpec);
servletAndPathFactory.servlet.set(servlet);
return servletAndPathFactory;
});
}
FactoryTemplateId> getTemplateId() {
return this.templateId;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy