1 package org.codehaus.xfire.java; 2 3 import java.lang.reflect.Method; 4 import java.util.Hashtable; 5 import java.util.Set; 6 7 /*** 8 * An operation that be performed on a service. 9 * 10 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 11 * @since Feb 20, 2004 12 */ 13 public class Operation 14 { 15 private Hashtable types; 16 17 private Hashtable params; 18 19 private Method method; 20 21 private Class outClass; 22 23 private String outName; 24 25 public Operation( Method method, JavaService service ) 26 { 27 params = new Hashtable(); 28 29 this.method = method; 30 31 Class[] paramClasses = method.getParameterTypes(); 32 33 for ( int j = 0; j < paramClasses.length; j++ ) 34 { 35 String paramName = null; 36 37 paramName = "in" + j; 38 addParameterClass( paramName, paramClasses[j] ); 39 } 40 41 42 outName = "out"; 43 44 outClass = method.getReturnType(); 45 } 46 47 public Class getOutParameterClass() 48 { 49 return outClass; 50 } 51 52 public String getOutParameterName() 53 { 54 return outName; 55 } 56 57 /*** 58 * @param string 59 * @return 60 */ 61 public Class getParameterClass( String paramName ) 62 { 63 return (Class) params.get( paramName ); 64 } 65 66 /*** 67 * @param paramName 68 * @param class1 69 */ 70 public void addParameterClass( String paramName, Class clazz ) 71 { 72 params.put( paramName, clazz ); 73 } 74 75 public Set getParameters() 76 { 77 return params.keySet(); 78 } 79 80 public Method getMethod() 81 { 82 return method; 83 } 84 85 /*** 86 * @return 87 */ 88 public String getName() 89 { 90 return method.getName(); 91 } 92 }