/** * Copyright (C) 2012-2017 52°North Initiative for Geospatial Open Source * Software GmbH * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published * by the Free Software Foundation. * * If the program is linked with libraries which are licensed under one of * the following licenses, the combination of the program with the linked * library is not considered a "derivative work" of the program: * * - Apache License, version 2.0 * - Apache Software License, version 1.0 * - GNU Lesser General Public License, version 3 * - Mozilla Public License, versions 1.0, 1.1 and 2.0 * - Common Development and Distribution License (CDDL), version 1.0 * * Therefore the distribution of the program linked with libraries licensed * under the aforementioned licenses, is permitted by the copyright holders * if the distribution is compliant with both the GNU General Public * License version 2 and the aforementioned licenses. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. */ package org.n52.sos.encode; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.n52.sos.request.AbstractServiceRequest; import org.n52.sos.response.AbstractServiceResponse; import org.n52.sos.soap.SoapRequest; import org.n52.sos.soap.SoapResponse; /** * TODO JavaDoc * * @author Christian Autermann <c.autermann@52north.org> * @since 4.0.0 */ public class SoapChain { private final HttpServletRequest httpRequest; private final HttpServletResponse httpResponse; private AbstractServiceRequest<?> bodyRequest; private AbstractServiceResponse bodyResponse; private SoapRequest soapRequest; private SoapResponse soapResponse = new SoapResponse(); public SoapChain(HttpServletRequest httpRequest, HttpServletResponse httpResponse) { this.httpRequest = httpRequest; this.httpResponse = httpResponse; } public AbstractServiceRequest<?> getBodyRequest() { return bodyRequest; } public boolean hasBodyRequest() { return getBodyRequest() != null; } public void setBodyRequest(AbstractServiceRequest<?> bodyRequest) { this.bodyRequest = bodyRequest; } public AbstractServiceResponse getBodyResponse() { return bodyResponse; } public boolean hasBodyResponse() { return getBodyResponse() != null; } public void setBodyResponse(AbstractServiceResponse bodyResponse) { this.bodyResponse = bodyResponse; if (hasSoapResponse()) { getSoapResponse().setBodyContent(bodyResponse); } } public SoapRequest getSoapRequest() { return soapRequest; } public boolean hasSoapRequest() { return getSoapRequest() != null; } public void setSoapRequest(SoapRequest soapRequest) { this.soapRequest = soapRequest; } public SoapResponse getSoapResponse() { return soapResponse; } public boolean hasSoapResponse() { return getSoapResponse() != null; } public void setSoapResponse(SoapResponse soapResponse) { this.soapResponse = soapResponse; if (hasBodyResponse() && !soapResponse.isSetBodyContent()) { soapResponse.setBodyContent(getBodyResponse()); } } public HttpServletRequest getHttpRequest() { return httpRequest; } public boolean hasHttpRequest() { return getHttpRequest() != null; } public HttpServletResponse getHttpResponse() { return httpResponse; } public boolean hasHttpResponse() { return getHttpResponse() != null; } }