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 }