|
Axis 2 example source code file (AxisBindingOperation.java)
The Axis 2 AxisBindingOperation.java source code/* * 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.axis2.description; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.util.PolicyUtil; import org.apache.axis2.util.WSDLSerializationUtil; import org.apache.axis2.wsdl.WSDLConstants; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.neethi.Policy; import javax.xml.namespace.QName; import java.util.HashMap; import java.util.Map; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /** * An AxisBindingOperation represents a WSDL <bindingOperation> */ public class AxisBindingOperation extends AxisDescription { private AxisOperation axisOperation; private QName name; private Map faults; private Map options; public AxisBindingOperation() { options = new HashMap(); faults = new HashMap(); } public AxisBindingMessage getFault(String name) { return (AxisBindingMessage) faults.get(name); } public void addFault(AxisBindingMessage fault) { this.faults.put(fault.getName(), fault); } public QName getName() { return name; } public void setName(QName name) { this.name = name; } public AxisOperation getAxisOperation() { return axisOperation; } public void setAxisOperation(AxisOperation axisOperation) { this.axisOperation = axisOperation; } public void setProperty(String name, Object value) { options.put(name, value); } public Object getProperty(String name) { Object property = this.options.get(name); AxisBinding parent; if (property == null && (parent = getAxisBinding()) != null) { property = parent.getProperty(name); } if (property == null) { property = WSDL20DefaultValueHolder.getDefaultValue(name); } return property; } public Object getKey() { return null; } public void engageModule(AxisModule axisModule) throws AxisFault { throw new UnsupportedOperationException("Sorry we do not support this"); } public boolean isEngaged(String moduleName) { throw new UnsupportedOperationException("axisMessage.isEngaged() is not supported"); } /** * Generates the bindingOperation element * @param wsdl The WSDL namespace * @param tns The targetnamespace * @param wsoap The SOAP namespace (WSDL 2.0) * @param whttp The HTTP namespace (WSDL 2.0) * @param type Indicates whether the binding is SOAP or HTTP * @param namespaceMap the service's namespace map (prefix -> namespace) * @param serviceName the name of the service * @return The generated binding element */ public OMElement toWSDL20(OMNamespace wsdl, OMNamespace tns, OMNamespace wsoap, OMNamespace whttp, String type, Map namespaceMap, String serviceName) { String property; OMFactory omFactory = OMAbstractFactory.getOMFactory(); OMElement bindingOpElement = omFactory.createOMElement(WSDL2Constants.OPERATION_LOCAL_NAME, wsdl); bindingOpElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_REF, null, tns.getPrefix() + ":" + this.name.getLocalPart())); if (WSDL2Constants.URI_WSDL2_SOAP.equals(type) || Constants.URI_SOAP11_HTTP.equals(type) || Constants.URI_SOAP12_HTTP.equals(type)) { // SOAP Binding specific properties property = (String) this.options.get(WSDL2Constants.ATTR_WSOAP_ACTION); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_ACTION, wsoap, property)); } ArrayList soapModules = (ArrayList) this.options.get(WSDL2Constants.ATTR_WSOAP_MODULE); if (soapModules != null && soapModules.size() > 0) { WSDLSerializationUtil.addSOAPModuleElements(omFactory, soapModules, wsoap, bindingOpElement); } property = (String) this.options.get(WSDL2Constants.ATTR_WSOAP_MEP); if (property != null) { bindingOpElement.addAttribute( omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_MEP, wsoap, property)); } } else if (WSDL2Constants.URI_WSDL2_HTTP.equals(type)) { // HTTP Binding specific properties property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_INPUT_SERIALIZATION, whttp, property)); } property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_OUTPUT_SERIALIZATION, whttp, property)); } property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_FAULT_SERIALIZATION); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_FAULT_SERIALIZATION, whttp, property)); } Boolean ignoreUncited = (Boolean) this.options.get(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED); if (ignoreUncited != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_IGNORE_UNCITED, whttp, ignoreUncited.toString())); } property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_METHOD); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_METHOD, whttp, property)); } } // Common properties property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_LOCATION); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_LOCATION, whttp, serviceName + "/" + property)); } property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_CONTENT_ENCODING); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_CONTENT_ENCODING, whttp, property)); } property = (String) this.options.get(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR); if (property != null) { bindingOpElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_QUERY_PARAMETER_SEPERATOR, whttp, property)); } // Add the input element AxisBindingMessage inMessage = (AxisBindingMessage) this.getChild(WSDLConstants.WSDL_MESSAGE_DIRECTION_IN); if (inMessage != null) { bindingOpElement.addChild(inMessage.toWSDL20(wsdl, tns, wsoap, whttp, namespaceMap)); } // Add the output element AxisBindingMessage outMessage = (AxisBindingMessage) this.getChild(WSDLConstants.WSDL_MESSAGE_DIRECTION_OUT); if (outMessage != null) { bindingOpElement.addChild(outMessage.toWSDL20(wsdl, tns, wsoap, whttp, namespaceMap)); } // Add any fault elements if (faults != null && faults.size() > 0) { Collection faultValues = faults.values(); Iterator iterator = faultValues.iterator(); while (iterator.hasNext()) { AxisBindingMessage faultMessage = (AxisBindingMessage) iterator.next(); bindingOpElement.addChild(faultMessage.toWSDL20(wsdl, tns, wsoap, whttp, namespaceMap)); } } WSDLSerializationUtil.addWSDLDocumentationElement(this, bindingOpElement, omFactory, wsdl); return bindingOpElement; } public Policy getEffectivePolicy() { ArrayList policyList = new ArrayList(); PolicyInclude policyInclude; // AxisBindingOperation policies policyInclude = getPolicyInclude(); policyList.addAll(policyInclude.getAttachedPolicies()); // AxisBinding AxisBinding axisBinding = getAxisBinding(); if (axisBinding != null) { policyList.addAll(axisBinding.getPolicyInclude() .getAttachedPolicies()); } // AxisEndpoint AxisEndpoint axisEndpoint = null; if (axisBinding != null) { axisEndpoint = axisBinding.getAxisEndpoint(); } if (axisEndpoint != null) { policyList.addAll(axisEndpoint.getPolicyInclude() .getAttachedPolicies()); } // AxisOperation Policy axisOperationPolicy = axisOperation.getPolicyInclude() .getEffectivePolicy(); if (axisOperationPolicy != null) { policyList.add(axisOperationPolicy); } return PolicyUtil.getMergedPolicy(policyList, this); } public AxisBinding getAxisBinding() { return (AxisBinding)parent; } } Other Axis 2 examples (source code examples)Here is a short list of links related to this Axis 2 AxisBindingOperation.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.