Author: scottbw
Date: Mon Mar 21 14:02:06 2011
New Revision: 1083787

URL: http://svn.apache.org/viewvc?rev=1083787&view=rev
Log:
Added JSON support to the WARP controller

Modified:
    
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java
    
incubator/wookie/trunk/src/org/apache/wookie/helpers/AccessRequestHelper.java

Modified: 
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java?rev=1083787&r1=1083786&r2=1083787&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java
 (original)
+++ 
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java
 Mon Mar 21 14:02:06 2011
@@ -58,6 +58,7 @@ public class WidgetAccessRequestPolicyCo
                switch (format(request)) {
                        case XML: 
returnXml(AccessRequestHelper.createXMLAccessRequestDocument(accessRequests),response);break;
                        case HTML: 
returnHtml(AccessRequestHelper.createAccessRequestHTMLTable(accessRequests),response);break;
+                       case JSON: 
returnJson(AccessRequestHelper.createJSON(accessRequests),response);break;
                }
        }
 
@@ -72,6 +73,7 @@ public class WidgetAccessRequestPolicyCo
                switch (format(request)) {
                        case XML: 
returnXml(AccessRequestHelper.createXMLAccessRequestDocument(new 
IAccessRequest[]{ar}),response);break;
                        case HTML: 
returnHtml(AccessRequestHelper.createAccessRequestHTMLTable(new 
IAccessRequest[]{ar}),response);break;
+                       case JSON: 
returnJson(AccessRequestHelper.createJSON(new 
IAccessRequest[]{ar}),response);break;
                }
        }
 

Modified: 
incubator/wookie/trunk/src/org/apache/wookie/helpers/AccessRequestHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/AccessRequestHelper.java?rev=1083787&r1=1083786&r2=1083787&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src/org/apache/wookie/helpers/AccessRequestHelper.java 
(original)
+++ 
incubator/wookie/trunk/src/org/apache/wookie/helpers/AccessRequestHelper.java 
Mon Mar 21 14:02:06 2011
@@ -30,13 +30,29 @@ public class AccessRequestHelper {
        public static String createXMLAccessRequestDocument(IAccessRequest[] 
accessRequests){
                String document = XMLDECLARATION;
                document += "\n<policies>\n";
-               for (IAccessRequest ar:accessRequests){
-                       document += toXml(ar);
+               if (accessRequests != null){
+                       for (IAccessRequest ar:accessRequests){
+                               document += toXml(ar);
+                       }
                }
                document += "</policies>\n";
                return document;
        }
        
+       public static String createJSON(IAccessRequest[] accessRequests){
+               String json = "{ \"policies\":[";
+               if (accessRequests != null){
+                       for (IAccessRequest ar:accessRequests){
+                               json += toJSON(ar);
+                       }
+               }
+               // remove last comma
+               json = json.substring(0, json.length()-1);
+               json += "]}";
+               
+               return json;
+       }
+       
        /**
         * Creates a HTML table with controls
         * @param accessRequests
@@ -56,6 +72,7 @@ public class AccessRequestHelper {
                String xml = "\t<policy ";
                xml += "id=\""+ar.getId()+"\" ";
                xml += "widget=\""+ar.getWidget().getId()+"\" ";
+               xml += 
"widget_title=\""+WidgetHelper.getEncodedWidgetTitle(ar.getWidget(), null)+"\" 
";
                xml += "origin=\""+ar.getOrigin()+"\" ";
                xml += "subdomains=\""+ar.isSubdomains()+"\" ";
                if (ar.isGranted()) {
@@ -67,6 +84,22 @@ public class AccessRequestHelper {
                return xml;
        }
        
+       private static String toJSON(IAccessRequest ar){
+               String json = "{";
+                       json += " \"id\":\"" + ar.getId() + "\""; 
+                       json += ",\"widget\":\"" + ar.getWidget().getId() + 
"\""; 
+                       json += ",\"widget_title\":\"" + 
WidgetHelper.getEncodedWidgetTitle(ar.getWidget(), null) + "\""; 
+                       json += ",\"origin\":\"" + ar.getOrigin() + "\"";       
+                       json += ",\"subdomains\":\"" + ar.isSubdomains() + 
"\"";        
+                       if (ar.isGranted()) {
+                               json+= ",\"granted\": \"true\"";
+                       } else {
+                               json+= ",\"granted\": \"false\"";               
        
+                       }
+               json += "},";
+               return json;
+       }
+       
        public static String toHtml(IAccessRequest ar){
                String html = "";
                if (ar.isGranted()){


Reply via email to