blob: 0e16a1001d5d06333a73ac69b2e46bb2e118843c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.sling.pipes.internal;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.pipes.OutputWriter;
import java.io.IOException;
public class AbstractPlumberServlet extends SlingAllMethodsServlet {
/**
* Retrieve an output writer depending on the request
* @param request original request against which writers will be tested
* @param response response writers will point to
* @return instance of the created writer
* @throws IOException bad handling of I/O streams,
*/
OutputWriter getWriter(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
OutputWriter[] candidates = new OutputWriter[]{new CsvWriter(), new JsonWriter()};
for (OutputWriter candidate : candidates) {
if (candidate.handleRequest(request)) {
candidate.init(request, response);
return candidate;
}
}
return null;
}
}