View Javadoc

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  }