DynamicSOAPMessage.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.message.soap.dynamic;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.util.Iterator;
- import javax.activation.DataHandler;
- import javax.xml.soap.AttachmentPart;
- import javax.xml.soap.MimeHeaders;
- import javax.xml.soap.SOAPBody;
- import javax.xml.soap.SOAPElement;
- import javax.xml.soap.SOAPException;
- import javax.xml.soap.SOAPHeader;
- import javax.xml.soap.SOAPPart;
- import org.openspcoop2.message.soap.AbstractOpenSPCoop2Message_saaj_impl;
- import org.openspcoop2.message.soap.AbstractOpenSPCoop2Message_soap_impl;
- /**
- * DynamicSOAPMessage
- *
- * @author Andrea Poli (poli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DynamicSOAPMessage<T extends AbstractOpenSPCoop2Message_saaj_impl> extends javax.xml.soap.SOAPMessage {
- private AbstractOpenSPCoop2Message_soap_impl<T> wrapped;
- public DynamicSOAPMessage(AbstractOpenSPCoop2Message_soap_impl<T> wrapped) {
- this.wrapped = wrapped;
- }
- private javax.xml.soap.SOAPMessage _getSOAPMessage(){
- try {
- return this.wrapped.getContent().getSOAPMessage();
- }catch(Exception e) {
- throw new RuntimeException(e.getMessage(),e);
- }
- }
-
-
- // Metodi ottimizzati per il dynamic behaviour
-
- private DynamicSOAPHeader<T> dynamicSoapHeader;
-
- @Override
- public SOAPHeader getSOAPHeader() throws SOAPException {
- if(this.wrapped.isSoapHeaderOptimizable()) {
- if(this.dynamicSoapHeader==null) {
- this.dynamicSoapHeader = new DynamicSOAPHeader<T>(this.wrapped);
- }
- return this.dynamicSoapHeader;
- }
- return _getSOAPMessage().getSOAPHeader();
- }
-
- private DynamicSOAPPart<T> dynamicSoapPart;
-
- @Override
- public SOAPPart getSOAPPart() {
- if(this.wrapped.isSoapHeaderOptimizable()) {
- if(this.dynamicSoapPart==null) {
- this.dynamicSoapPart = new DynamicSOAPPart<T>(this.wrapped);
- }
- return this.dynamicSoapPart;
- }
- return _getSOAPMessage().getSOAPPart();
- }
-
- public void clearDynamicResources() {
- this.dynamicSoapHeader=null;
-
- if(this.dynamicSoapPart!=null) {
- this.dynamicSoapPart.clearDynamicResources();
- }
- this.dynamicSoapPart=null;
- }
-
-
- // Metodi implementati in SAAJ
-
- @Override
- public void addAttachmentPart(AttachmentPart arg0) {
- _getSOAPMessage().addAttachmentPart(arg0);
- }
- @Override
- public int countAttachments() {
- return _getSOAPMessage().countAttachments();
- }
- @Override
- public AttachmentPart createAttachmentPart() {
- return _getSOAPMessage().createAttachmentPart();
- }
- @Override
- public AttachmentPart getAttachment(SOAPElement arg0) throws SOAPException {
- return _getSOAPMessage().getAttachment(arg0);
- }
- @Override
- public Iterator<AttachmentPart> getAttachments() {
- return _getSOAPMessage().getAttachments();
- }
- @Override
- public Iterator<AttachmentPart> getAttachments(MimeHeaders arg0) {
- return _getSOAPMessage().getAttachments(arg0);
- }
- @Override
- public String getContentDescription() {
- return _getSOAPMessage().getContentDescription();
- }
- @Override
- public MimeHeaders getMimeHeaders() {
- return _getSOAPMessage().getMimeHeaders();
- }
- @Override
- public void removeAllAttachments() {
- _getSOAPMessage().removeAllAttachments();
- }
- @Override
- public void removeAttachments(MimeHeaders arg0) {
- _getSOAPMessage().removeAttachments(arg0);
- }
- @Override
- public void saveChanges() throws SOAPException {
- _getSOAPMessage().saveChanges();
- }
- @Override
- public boolean saveRequired() {
- return _getSOAPMessage().saveRequired();
- }
- @Override
- public void setContentDescription(String arg0) {
- _getSOAPMessage().setContentDescription(arg0);
- }
- @Override
- public void writeTo(OutputStream arg0) throws SOAPException, IOException {
- _getSOAPMessage().writeTo(arg0);
- }
- @Override
- public AttachmentPart createAttachmentPart(DataHandler dataHandler) {
- return _getSOAPMessage().createAttachmentPart(dataHandler);
- }
- @Override
- public AttachmentPart createAttachmentPart(Object content, String contentType) {
- return _getSOAPMessage().createAttachmentPart(content, contentType);
- }
- @Override
- public Object getProperty(String property) throws SOAPException {
- return _getSOAPMessage().getProperty(property);
- }
- @Override
- public SOAPBody getSOAPBody() throws SOAPException {
- return _getSOAPMessage().getSOAPBody();
- }
- @Override
- public void setProperty(String property, Object value) throws SOAPException {
- _getSOAPMessage().setProperty(property, value);
- }
- }