public void write(ClassName linkers) throws IOException {
TypeSpec.Builder typeBuilder = TypeSpec.classBuilder(linkers.className())
.addModifiers(PUBLIC, FINAL)
.addSuperinterface(ServletContextListener.class)
.addAnnotation(AnnotationSpec.builder(WebListener.class).build())
.addAnnotation(AnnotationSpec.builder(Generated.class)
.addMember("value", "$S", LinkerAnnotationProcessor.class.getName())
.build()
)
.addField(FieldSpec.builder(String.class, "contextPath", PRIVATE, STATIC)
.initializer("\"\"")
.build())
.addField(FieldSpec.builder(String.class, "applicationName", PRIVATE, STATIC)
.initializer("$T.get()", get("fr.vidal.oss.jax_rs_linker", "ApplicationName"))
.build())
.addMethod(MethodSpec.methodBuilder("contextInitialized")
.addModifiers(PUBLIC)
.addAnnotation(Override.class)
.returns(void.class)
.addParameter(ServletContextEvent.class, "sce")
.addCode(
"$L = $T.contextPath($L.getServletContext(), $L);\n",
"contextPath",
ContextPaths.class,
"sce",
"applicationName")
.build())
.addMethod(MethodSpec.methodBuilder("contextDestroyed")
.addModifiers(PUBLIC)
.addAnnotation(Override.class)
.returns(void.class)
.addParameter(ServletContextEvent.class, "sce")
.build())
.addMethod(MethodSpec.methodBuilder("getContextPath")
.addModifiers(PUBLIC, STATIC)
.returns(String.class)
.addCode(
"return contextPath;\n")
.build());
JavaFile.builder(linkers.packageName(), typeBuilder.build())
.indent("\t")
.build()
.writeTo(filer);
}
ContextPathHolderWriter.java 文件源码
java
阅读 34
收藏 0
点赞 0
评论 0
项目:jax-rs-linker
作者:
评论列表
文章目录