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 }