package org.togglz.test; import org.jboss.shrinkwrap.api.asset.Asset; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.descriptor.api.Descriptors; import org.jboss.shrinkwrap.descriptor.api.webapp31.WebAppDescriptor; public class WebAppDescriptorBuilder { private final WebAppDescriptor descriptor; public WebAppDescriptorBuilder() { descriptor = Descriptors.create(WebAppDescriptor.class); } public WebAppDescriptorBuilder contextParam(String name, String value) { descriptor.createContextParam() .paramName(name) .paramValue(value); return this; } public WebAppDescriptorBuilder filter(Class<?> clazz, String urlPattern) { descriptor.createFilter() .filterName(clazz.getSimpleName()) .filterClass(clazz.getName()) .up() .createFilterMapping() .filterName(clazz.getSimpleName()) .urlPattern(urlPattern); return this; } public WebAppDescriptorBuilder servlet(Class<?> clazz, String urlPattern) { descriptor.createServlet() .servletName(clazz.getSimpleName()) .servletClass(clazz.getName()) .up() .createServletMapping() .servletName(clazz.getSimpleName()) .urlPattern(urlPattern); return this; } public WebAppDescriptorBuilder listener(Class<?> clazz) { return listener(clazz.getName()); } public WebAppDescriptorBuilder listener(String clazz) { descriptor.createListener() .listenerClass(clazz); return this; } public Asset exportAsAsset() { return new StringAsset(exportAsString()); } public String exportAsString() { return descriptor.exportAsString(); } }