DynamicSOAPPart.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */

  20. package org.openspcoop2.message.soap.dynamic;

  21. import java.util.Iterator;

  22. import javax.xml.soap.MimeHeader;
  23. import javax.xml.soap.SOAPElement;
  24. import javax.xml.soap.SOAPEnvelope;
  25. import javax.xml.soap.SOAPException;
  26. import javax.xml.transform.Source;

  27. import org.openspcoop2.message.soap.AbstractOpenSPCoop2Message_saaj_impl;
  28. import org.openspcoop2.message.soap.AbstractOpenSPCoop2Message_soap_impl;
  29. import org.w3c.dom.Attr;
  30. import org.w3c.dom.CDATASection;
  31. import org.w3c.dom.Comment;
  32. import org.w3c.dom.DOMConfiguration;
  33. import org.w3c.dom.DOMException;
  34. import org.w3c.dom.DOMImplementation;
  35. import org.w3c.dom.Document;
  36. import org.w3c.dom.DocumentFragment;
  37. import org.w3c.dom.DocumentType;
  38. import org.w3c.dom.Element;
  39. import org.w3c.dom.EntityReference;
  40. import org.w3c.dom.NamedNodeMap;
  41. import org.w3c.dom.Node;
  42. import org.w3c.dom.NodeList;
  43. import org.w3c.dom.ProcessingInstruction;
  44. import org.w3c.dom.Text;
  45. import org.w3c.dom.UserDataHandler;

  46. /**
  47.  * DynamicSOAPPart
  48.  *
  49.  * @author Andrea Poli (poli@link.it)
  50.  * @author $Author$
  51.  * @version $Rev$, $Date$
  52.  */
  53. public class DynamicSOAPPart<T extends AbstractOpenSPCoop2Message_saaj_impl> extends javax.xml.soap.SOAPPart {

  54.     private AbstractOpenSPCoop2Message_soap_impl<T> wrapped;
  55.     public DynamicSOAPPart(AbstractOpenSPCoop2Message_soap_impl<T> wrapped) {
  56.         this.wrapped = wrapped;
  57.     }

  58.     private javax.xml.soap.SOAPPart _getSOAPPart(){
  59.         try {
  60.             return this.wrapped.getContent().getSOAPPart();
  61.         }catch(Exception e) {
  62.             throw new RuntimeException(e.getMessage(),e);
  63.         }
  64.     }
  65.    
  66.    
  67.     // Metodi ottimizzati per il dynamic behaviour
  68.    
  69.     private DynamicSOAPEnvelope<T> dynamic;
  70.    
  71.     @Override
  72.     public SOAPEnvelope getEnvelope() throws SOAPException {
  73.         if(this.wrapped.isSoapHeaderOptimizable()) {
  74.             if(this.dynamic==null) {
  75.                 this.dynamic = new DynamicSOAPEnvelope<T>(this.wrapped);
  76.             }
  77.             return this.dynamic;
  78.         }
  79.         return _getSOAPPart().getEnvelope();
  80.     }
  81.    
  82.     public void clearDynamicResources() {
  83.         if(this.dynamic!=null) {
  84.             this.dynamic.clearDynamicResources();
  85.         }
  86.         this.dynamic=null;
  87.     }
  88.    
  89.    
  90.     // Metodi implementati in SAAJ
  91.    
  92.     @Override
  93.     public String getContentId() {
  94.         return _getSOAPPart().getContentId();
  95.     }

  96.     @Override
  97.     public String getContentLocation() {
  98.         return _getSOAPPart().getContentLocation();
  99.     }

  100.     @Override
  101.     public void setContentId(String contentId) {
  102.         _getSOAPPart().setContentId(contentId);
  103.     }

  104.     @Override
  105.     public void setContentLocation(String contentLocation) {
  106.         _getSOAPPart().setContentLocation(contentLocation);
  107.     }
  108.     @Override
  109.     public DocumentType getDoctype() {
  110.         return _getSOAPPart().getDoctype();
  111.     }
  112.     @Override
  113.     public DOMImplementation getImplementation() {
  114.         return _getSOAPPart().getImplementation();
  115.     }
  116.     @Override
  117.     public Element getDocumentElement() {
  118.         return _getSOAPPart().getDocumentElement();
  119.     }
  120.     @Override
  121.     public Element createElement(String tagName) throws DOMException {
  122.         return _getSOAPPart().createElement(tagName);
  123.     }
  124.     @Override
  125.     public DocumentFragment createDocumentFragment() {
  126.         return _getSOAPPart().createDocumentFragment();
  127.     }
  128.     @Override
  129.     public Text createTextNode(String data) {
  130.         return _getSOAPPart().createTextNode(data);
  131.     }
  132.     @Override
  133.     public Comment createComment(String data) {
  134.         return _getSOAPPart().createComment(data);
  135.     }
  136.     @Override
  137.     public CDATASection createCDATASection(String data) throws DOMException {
  138.         return _getSOAPPart().createCDATASection(data);
  139.     }
  140.     @Override
  141.     public ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException {
  142.         return _getSOAPPart().createProcessingInstruction(target, data);
  143.     }
  144.     @Override
  145.     public Attr createAttribute(String name) throws DOMException {
  146.         return _getSOAPPart().createAttribute(name);
  147.     }
  148.     @Override
  149.     public EntityReference createEntityReference(String name) throws DOMException {
  150.         return _getSOAPPart().createEntityReference(name);
  151.     }
  152.     @Override
  153.     public NodeList getElementsByTagName(String tagname) {
  154.         return _getSOAPPart().getElementsByTagName(tagname);
  155.     }
  156.     @Override
  157.     public Node importNode(Node importedNode, boolean deep) throws DOMException {
  158.         return _getSOAPPart().importNode(importedNode, deep);
  159.     }
  160.     @Override
  161.     public Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException {
  162.         return _getSOAPPart().createElementNS(namespaceURI, qualifiedName);
  163.     }
  164.     @Override
  165.     public Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException {
  166.         return _getSOAPPart().createAttributeNS(namespaceURI, qualifiedName);
  167.     }
  168.     @Override
  169.     public NodeList getElementsByTagNameNS(String namespaceURI, String localName) {
  170.         return _getSOAPPart().getElementsByTagNameNS(namespaceURI, localName);
  171.     }
  172.     @Override
  173.     public Element getElementById(String elementId) {
  174.         return _getSOAPPart().getElementById(elementId);
  175.     }
  176.     @Override
  177.     public String getInputEncoding() {
  178.         return _getSOAPPart().getInputEncoding();
  179.     }
  180.     @Override
  181.     public String getXmlEncoding() {
  182.         return _getSOAPPart().getXmlEncoding();
  183.     }
  184.     @Override
  185.     public boolean getXmlStandalone() {
  186.         return _getSOAPPart().getXmlStandalone();
  187.     }
  188.     @Override
  189.     public void setXmlStandalone(boolean xmlStandalone) throws DOMException {
  190.         _getSOAPPart().setXmlStandalone(xmlStandalone);
  191.     }
  192.     @Override
  193.     public String getXmlVersion() {
  194.         return _getSOAPPart().getXmlVersion();
  195.     }
  196.     @Override
  197.     public void setXmlVersion(String xmlVersion) throws DOMException {
  198.         _getSOAPPart().setXmlVersion(xmlVersion);
  199.     }
  200.     @Override
  201.     public boolean getStrictErrorChecking() {
  202.         return _getSOAPPart().getStrictErrorChecking();
  203.     }
  204.     @Override
  205.     public void setStrictErrorChecking(boolean strictErrorChecking) {
  206.         _getSOAPPart().setStrictErrorChecking(strictErrorChecking);
  207.     }
  208.     @Override
  209.     public String getDocumentURI() {
  210.         return _getSOAPPart().getDocumentURI();
  211.     }
  212.     @Override
  213.     public void setDocumentURI(String documentURI) {
  214.         _getSOAPPart().setDocumentURI(documentURI);
  215.     }
  216.     @Override
  217.     public Node adoptNode(Node source) throws DOMException {
  218.         return _getSOAPPart().adoptNode(source);
  219.     }
  220.     @Override
  221.     public DOMConfiguration getDomConfig() {
  222.         return _getSOAPPart().getDomConfig();
  223.     }
  224.     @Override
  225.     public void normalizeDocument() {
  226.         _getSOAPPart().normalizeDocument();
  227.     }
  228.     @Override
  229.     public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException {
  230.         return _getSOAPPart().renameNode(n, namespaceURI, qualifiedName);
  231.     }
  232.     @Override
  233.     public String getNodeName() {
  234.         return _getSOAPPart().getNodeName();
  235.     }
  236.     @Override
  237.     public String getNodeValue() throws DOMException {
  238.         return _getSOAPPart().getNodeValue();
  239.     }
  240.     @Override
  241.     public void setNodeValue(String nodeValue) throws DOMException {
  242.         _getSOAPPart().setNodeValue(nodeValue);
  243.     }
  244.     @Override
  245.     public short getNodeType() {
  246.         return _getSOAPPart().getNodeType();
  247.     }
  248.     @Override
  249.     public Node getParentNode() {
  250.         return _getSOAPPart().getParentNode();
  251.     }
  252.     @Override
  253.     public NodeList getChildNodes() {
  254.         return _getSOAPPart().getChildNodes();
  255.     }
  256.     @Override
  257.     public Node getFirstChild() {
  258.         return _getSOAPPart().getFirstChild();
  259.     }
  260.     @Override
  261.     public Node getLastChild() {
  262.         return _getSOAPPart().getLastChild();
  263.     }
  264.     @Override
  265.     public Node getPreviousSibling() {
  266.         return _getSOAPPart().getPreviousSibling();
  267.     }
  268.     @Override
  269.     public Node getNextSibling() {
  270.         return _getSOAPPart().getNextSibling();
  271.     }
  272.     @Override
  273.     public NamedNodeMap getAttributes() {
  274.         return _getSOAPPart().getAttributes();
  275.     }
  276.     @Override
  277.     public Document getOwnerDocument() {
  278.         return _getSOAPPart().getOwnerDocument();
  279.     }
  280.     @Override
  281.     public Node insertBefore(Node newChild, Node refChild) throws DOMException {
  282.         return _getSOAPPart().insertBefore(newChild, refChild);
  283.     }
  284.     @Override
  285.     public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
  286.         return _getSOAPPart().replaceChild(newChild, oldChild);
  287.     }
  288.     @Override
  289.     public Node removeChild(Node oldChild) throws DOMException {
  290.         return _getSOAPPart().removeChild(oldChild);
  291.     }
  292.     @Override
  293.     public Node appendChild(Node newChild) throws DOMException {
  294.         return _getSOAPPart().appendChild(newChild);
  295.     }
  296.     @Override
  297.     public boolean hasChildNodes() {
  298.         return _getSOAPPart().hasChildNodes();
  299.     }
  300.     @Override
  301.     public Node cloneNode(boolean deep) {
  302.         return _getSOAPPart().cloneNode(deep);
  303.     }
  304.     @Override
  305.     public void normalize() {
  306.         _getSOAPPart().normalize();
  307.     }
  308.     @Override
  309.     public boolean isSupported(String feature, String version) {
  310.         return _getSOAPPart().isSupported(feature, version);
  311.     }
  312.     @Override
  313.     public String getNamespaceURI() {
  314.         return _getSOAPPart().getNamespaceURI();
  315.     }
  316.     @Override
  317.     public String getPrefix() {
  318.         return _getSOAPPart().getPrefix();
  319.     }
  320.     @Override
  321.     public void setPrefix(String prefix) throws DOMException {
  322.         _getSOAPPart().setPrefix(prefix);
  323.     }
  324.     @Override
  325.     public String getLocalName() {
  326.         return _getSOAPPart().getLocalName();
  327.     }
  328.     @Override
  329.     public boolean hasAttributes() {
  330.         return _getSOAPPart().hasAttributes();
  331.     }
  332.     @Override
  333.     public String getBaseURI() {
  334.         return _getSOAPPart().getBaseURI();
  335.     }
  336.     @Override
  337.     public short compareDocumentPosition(Node other) throws DOMException {
  338.         return _getSOAPPart().compareDocumentPosition(other);
  339.     }
  340.     @Override
  341.     public String getTextContent() throws DOMException {
  342.         return _getSOAPPart().getTextContent();
  343.     }
  344.     @Override
  345.     public void setTextContent(String textContent) throws DOMException {
  346.         _getSOAPPart().setTextContent(textContent);
  347.     }
  348.     @Override
  349.     public boolean isSameNode(Node other) {
  350.         return _getSOAPPart().isSameNode(other);
  351.     }
  352.     @Override
  353.     public String lookupPrefix(String namespaceURI) {
  354.         return _getSOAPPart().lookupPrefix(namespaceURI);
  355.     }
  356.     @Override
  357.     public boolean isDefaultNamespace(String namespaceURI) {
  358.         return _getSOAPPart().isDefaultNamespace(namespaceURI);
  359.     }
  360.     @Override
  361.     public String lookupNamespaceURI(String prefix) {
  362.         return _getSOAPPart().lookupNamespaceURI(prefix);
  363.     }
  364.     @Override
  365.     public boolean isEqualNode(Node arg) {
  366.         return _getSOAPPart().isEqualNode(arg);
  367.     }
  368.     @Override
  369.     public Object getFeature(String feature, String version) {
  370.         return _getSOAPPart().getFeature(feature, version);
  371.     }
  372.     @Override
  373.     public Object setUserData(String key, Object data, UserDataHandler handler) {
  374.         return _getSOAPPart().setUserData(key, data, handler);
  375.     }
  376.     @Override
  377.     public Object getUserData(String key) {
  378.         return _getSOAPPart().getUserData(key);
  379.     }
  380.     @Override
  381.     public void detachNode() {
  382.         _getSOAPPart().detachNode();
  383.     }
  384.     @Override
  385.     public SOAPElement getParentElement() {
  386.         return _getSOAPPart().getParentElement();
  387.     }
  388.     @Override
  389.     public String getValue() {
  390.         return _getSOAPPart().getValue();
  391.     }
  392.     @Override
  393.     public void recycleNode() {
  394.         _getSOAPPart().recycleNode();
  395.     }
  396.     @Override
  397.     public void setParentElement(SOAPElement arg0) throws SOAPException {
  398.         _getSOAPPart().setParentElement(arg0);
  399.     }
  400.     @Override
  401.     public void setValue(String arg0) {
  402.         _getSOAPPart().setValue(arg0);
  403.     }
  404.     @Override
  405.     public void addMimeHeader(String arg0, String arg1) {
  406.         _getSOAPPart().addMimeHeader(arg0, arg1);
  407.     }
  408.     @Override
  409.     public Iterator<MimeHeader> getAllMimeHeaders() {
  410.         return _getSOAPPart().getAllMimeHeaders();
  411.     }
  412.     @Override
  413.     public Source getContent() throws SOAPException {
  414.         return _getSOAPPart().getContent();
  415.     }

  416.     @Override
  417.     public Iterator<MimeHeader> getMatchingMimeHeaders(String[] arg0) {
  418.         return _getSOAPPart().getMatchingMimeHeaders(arg0);
  419.     }
  420.     @Override
  421.     public String[] getMimeHeader(String arg0) {
  422.         return _getSOAPPart().getMimeHeader(arg0);
  423.     }
  424.     @Override
  425.     public Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] arg0) {
  426.         return _getSOAPPart().getNonMatchingMimeHeaders(arg0);
  427.     }
  428.     @Override
  429.     public void removeAllMimeHeaders() {
  430.         _getSOAPPart().removeAllMimeHeaders();
  431.     }
  432.     @Override
  433.     public void removeMimeHeader(String arg0) {
  434.         _getSOAPPart().removeMimeHeader(arg0);
  435.     }
  436.     @Override
  437.     public void setContent(Source arg0) throws SOAPException {
  438.         _getSOAPPart().setContent(arg0);
  439.     }
  440.     @Override
  441.     public void setMimeHeader(String arg0, String arg1) {
  442.         _getSOAPPart().setMimeHeader(arg0, arg1);
  443.     }
  444.    
  445. }