001package io.prometheus.client;
002
003import io.prometheus.client.servlet.common.adapter.FilterConfigAdapter;
004import io.prometheus.client.servlet.common.adapter.HttpServletRequestAdapter;
005import io.prometheus.client.servlet.common.adapter.HttpServletResponseAdapter;
006import io.prometheus.client.servlet.common.adapter.ServletConfigAdapter;
007
008import javax.servlet.FilterConfig;
009import javax.servlet.ServletConfig;
010import javax.servlet.http.HttpServletRequest;
011import javax.servlet.http.HttpServletResponse;
012import java.io.IOException;
013import java.io.PrintWriter;
014
015public class Adapter {
016
017    private static class HttpServletRequestAdapterImpl implements HttpServletRequestAdapter {
018
019        private final HttpServletRequest delegate;
020
021        HttpServletRequestAdapterImpl(HttpServletRequest delegate) {
022            this.delegate = delegate;
023        }
024
025        @Override
026        public String getHeader(String name) {
027            return delegate.getHeader(name);
028        }
029
030        @Override
031        public String getRequestURI() {
032            return delegate.getRequestURI();
033        }
034
035        @Override
036        public String getMethod() {
037            return delegate.getMethod();
038        }
039
040        @Override
041        public String[] getParameterValues(String name) {
042            return delegate.getParameterValues(name);
043        }
044
045        @Override
046        public String getContextPath() {
047            return delegate.getContextPath();
048        }
049    }
050
051    private static class HttpServletResponseAdapterImpl implements HttpServletResponseAdapter {
052
053        private final HttpServletResponse delegate;
054
055        HttpServletResponseAdapterImpl(HttpServletResponse delegate) {
056            this.delegate = delegate;
057        }
058
059        @Override
060        public void setStatus(int httpStatusCode) {
061            delegate.setBufferSize(httpStatusCode);
062        }
063
064        @Override
065        public void setContentType(String contentType) {
066            delegate.setContentType(contentType);
067        }
068
069        @Override
070        public PrintWriter getWriter() throws IOException {
071            return delegate.getWriter();
072        }
073
074        @Override
075        public int getStatus() {
076            return delegate.getStatus();
077        }
078    }
079
080    private static class FilterConfigAdapterImpl implements FilterConfigAdapter {
081
082        private final FilterConfig delegate;
083
084        private FilterConfigAdapterImpl(FilterConfig delegate) {
085            this.delegate = delegate;
086        }
087
088        @Override
089        public String getInitParameter(String name) {
090            return delegate.getInitParameter(name);
091        }
092    }
093
094    private static class ServletConfigAdapterImpl implements ServletConfigAdapter {
095
096        final ServletConfig delegate;
097
098        private ServletConfigAdapterImpl(ServletConfig delegate) {
099            this.delegate = delegate;
100        }
101
102        @Override
103        public String getInitParameter(String name) {
104            return delegate.getInitParameter(name);
105        }
106    }
107
108    public static HttpServletRequestAdapter wrap(HttpServletRequest req) {
109        return new HttpServletRequestAdapterImpl(req);
110    }
111
112    public static HttpServletResponseAdapter wrap(HttpServletResponse resp) {
113        return new HttpServletResponseAdapterImpl(resp);
114    }
115
116    public static FilterConfigAdapter wrap(FilterConfig filterConfig) {
117        return new FilterConfigAdapterImpl(filterConfig);
118    }
119
120    public static ServletConfigAdapter wrap(ServletConfig servletConfig) {
121        return new ServletConfigAdapterImpl(servletConfig);
122    }
123}