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              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  }