1 /********************************************************************** 2 * EJOEOperation.java 3 * created on 12.07.2006 by netseeker 4 * $Source$ 5 * $Date$ 6 * $Revision$ 7 * 8 * ==================================================================== 9 * 10 * Copyright 2006 netseeker aka Michael Manske 11 * 12 * Licensed under the Apache License, Version 2.0 (the "License"); 13 * you may not use this file except in compliance with the License. 14 * You may obtain a copy of the License at 15 * 16 * http://www.apache.org/licenses/LICENSE-2.0 17 * 18 * Unless required by applicable law or agreed to in writing, software 19 * distributed under the License is distributed on an "AS IS" BASIS, 20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 * See the License for the specific language governing permissions and 22 * limitations under the License. 23 * ==================================================================== 24 * 25 * This file is part of the EJOE framework. 26 * For more information on the author, please see 27 * <http://www.manskes.de/>. 28 * 29 *********************************************************************/ 30 31 package de.netseeker.ejoe.ext.wsif.wsdl; 32 33 import java.io.Serializable; 34 import java.util.List; 35 36 import javax.wsdl.extensions.ExtensibilityElement; 37 import javax.xml.namespace.QName; 38 39 import com.ibm.wsdl.util.StringUtils; 40 41 /*** 42 * WSDL extension for the ejoe:operation element. Example: 43 * 44 * <pre> 45 * <operation name="getAddressFromName"> 46 * <ejoe:operation 47 * className="de.netseeker.ejoe.test.service.AddressBookImpl" 48 * methodName="getAddressFromName" parameterOrder="name" 49 * invocationType="reflection" returnPart="address" /> 50 * <input name="GetAddressFromNameRequest" /> 51 * <output name="GetAddressFromNameResponse" /> 52 * </operation> 53 * </pre> 54 * 55 * @author netseeker 56 * @since 0.3.9.1 57 */ 58 public class EJOEOperation implements ExtensibilityElement, Serializable 59 { 60 private static final long serialVersionUID = 1L; 61 62 protected QName fieldElementType = EJOEBindingConstants.Q_ELEM_EJOE_OPERATION; 63 64 protected Boolean fieldRequired; 65 66 protected String fieldClassName; 67 68 protected String fieldMethodName; 69 70 protected String invocationType; 71 72 protected List fieldParameterOrder; 73 74 protected String fieldReturnPart; 75 76 /*** 77 * Get the type of this extensibility element. 78 * 79 * @return the extensibility element's type 80 */ 81 public QName getElementType() 82 { 83 return fieldElementType; 84 } 85 86 /*** 87 * @return Returns the invocationType. 88 */ 89 public String getInvocationType() 90 { 91 return invocationType; 92 } 93 94 /*** 95 * @param invocationType The invocationType to set. 96 */ 97 public void setInvocationType( String invocationType ) 98 { 99 this.invocationType = invocationType; 100 } 101 102 public String getMethodName() 103 { 104 return fieldMethodName; 105 } 106 107 public List getParameterOrder() 108 { 109 return fieldParameterOrder; 110 } 111 112 public String getReturnPart() 113 { 114 return fieldReturnPart; 115 } 116 117 /*** 118 * Get whether or not the semantics of this extension are required. Relates to the wsdl:required attribute. 119 */ 120 public Boolean getRequired() 121 { 122 return fieldRequired; 123 } 124 125 /*** 126 * Set the type of this extensibility element. 127 * 128 * @param elementType the type 129 */ 130 public void setElementType( QName elementType ) 131 { 132 fieldElementType = elementType; 133 } 134 135 public void setMethodName( String newMethodName ) 136 { 137 fieldMethodName = newMethodName; 138 } 139 140 public void setParameterOrder( String newParameterOrderStr ) 141 { 142 if ( newParameterOrderStr != null ) 143 { 144 fieldParameterOrder = StringUtils.parseNMTokens( newParameterOrderStr ); 145 } 146 } 147 148 public void setReturnPart( String newReturnPart ) 149 { 150 fieldReturnPart = newReturnPart; 151 } 152 153 /*** 154 * @return the className 155 */ 156 public String getClassName() 157 { 158 return fieldClassName; 159 } 160 161 /*** 162 * @param className the className to set 163 */ 164 public void setClassName( String className ) 165 { 166 this.fieldClassName = className; 167 } 168 169 /*** 170 * Set whether or not the semantics of this extension are required. Relates to the wsdl:required attribute. 171 */ 172 public void setRequired( Boolean required ) 173 { 174 fieldRequired = required; 175 } 176 177 public String toString() 178 { 179 StringBuffer strBuf = new StringBuffer( super.toString() ); 180 181 strBuf.append( "\nEJOEOperation (" + fieldElementType + "):" ); 182 strBuf.append( "\nrequired=" + fieldRequired ); 183 strBuf.append( "\nclassName=" + fieldClassName ); 184 strBuf.append( "\nmethodName=" + fieldMethodName ); 185 strBuf.append( "\ninvocationType=" + invocationType ); 186 strBuf.append( "\nparameterOrder=" + fieldParameterOrder ); 187 strBuf.append( "\nreturnPart=" + fieldReturnPart ); 188 189 return strBuf.toString(); 190 } 191 }