added JSON reading ability, including serializable objects
[OpenSRF.git] / src / java / org / opensrf / Method.java
1 package org.opensrf;
2 import java.util.List;
3 import java.util.ArrayList;
4 import org.opensrf.util.*;
5
6
7 public class Method extends OSRFObject {
8
9     private String name;
10     private List<Object> params;
11
12     private static OSRFRegistry registry = 
13         OSRFRegistry.registerObject(
14             "osrfMethod", 
15             OSRFRegistry.WireProtocol.HASH, 
16             new String[] {"method", "params"});
17
18     public Method(String name) {
19         this.name = name;
20         this.params = new ArrayList<Object>(8);
21     }
22
23     public Method(String name, List<Object> params) {
24         this.name = name;
25         this.params = params;
26     }
27
28     public String getName() {
29         return name;
30     }
31     public List<Object> getParams() {
32        return params; 
33     }
34
35     /**
36      * Pushes a new param object onto the set of params 
37      * @param p The new param to add to the method.
38      */
39     public void addParam(Object p) {
40         this.params.add(p);
41     }
42
43     /**
44      * Implements the generic get() API required by OSRFSerializable
45      */
46     public Object get(String field) {
47         if("method".equals(field))
48             return getName();
49         if("params".equals(field))
50             return getParams();
51         return null;
52     }
53
54     public OSRFRegistry getRegistry() {
55         return registry;
56     }
57
58 }
59