added support for opensrf-serializable objects and JSON output of those objects....
[OpenSRF.git] / src / java / org / opensrf / Result.java
1 package org.opensrf;
2 import org.opensrf.util.*;
3
4
5 /**
6  * Models a single result from a method request.
7  */
8 public class Result {
9
10     /** Method result content */
11     private Object content;
12     /** Name of the status */
13     private String status;
14     /** Status code number */
15     private int statusCode;
16
17
18     /** Register this object */
19     private static OSRFRegistry registry = 
20         OSRFRegistry.registerObject(
21             "osrfResult", 
22             OSRFRegistry.WireProtocol.HASH, 
23             new String[] {"status", "statusCode", "content"});
24
25
26     public Result(String status, int statusCode, Object content) {
27         this.status = status;
28         this.statusCode = statusCode;
29         this.content = content;
30     }
31     
32     /**
33      * Get status.
34      * @return status as String.
35      */
36     public String getStatus() {
37         return status;
38     }
39     
40     /**
41      * Set status.
42      * @param status the value to set.
43      */
44     public void setStatus(String status) {
45         this.status = status;
46     }
47     
48     /**
49      * Get statusCode.
50      * @return statusCode as int.
51      */
52     public int getStatusCode() {
53         return statusCode;
54     }
55     
56     /**
57      * Set statusCode.
58      * @param statusCode the value to set.
59      */
60     public void setStatusCode(int statusCode) {
61         this.statusCode = statusCode;
62     }
63     
64     /**
65      * Get content.
66      * @return content as Object.
67      */
68     public Object getContent() {
69         return content;
70     }
71     
72     /**
73      * Set content.
74      * @param content the value to set.
75      */
76     public void setContent(Object content) {
77         this.content = content;
78     }
79
80     /**
81      * Implements the generic get() API required by OSRFSerializable
82      */
83     public Object get(String field) {
84         if("status".equals(field))
85             return getStatus();
86         if("statusCode".equals(field))
87             return getStatusCode();
88         if("content".equals(field))
89             return getContent();
90         return null;
91     }
92
93     public OSRFRegistry getRegistry() {
94         return registry;
95     }
96
97 }
98