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 System.out.println("registering: " + paramName + " " + paramClasses[j].getName()); 39 addParameterClass( paramName, paramClasses[j] ); 40 } 41 42 43 outName = "out"; 44 45 outClass = method.getReturnType(); 46 } 47 48 public Class getOutParameterClass() 49 { 50 return outClass; 51 } 52 53 public String getOutParameterName() 54 { 55 return outName; 56 } 57 58 /*** 59 * @param string 60 * @return 61 */ 62 public Class getParameterClass( String paramName ) 63 { 64 return (Class) params.get( paramName ); 65 } 66 67 /*** 68 * @param paramName 69 * @param class1 70 */ 71 public void addParameterClass( String paramName, Class clazz ) 72 { 73 params.put( paramName, clazz ); 74 } 75 76 public Set getParameters() 77 { 78 return params.keySet(); 79 } 80 81 public Method getMethod() 82 { 83 return method; 84 } 85 86 /*** 87 * @return 88 */ 89 public String getName() 90 { 91 return method.getName(); 92 } 93 }