Search in sources :

Example 1 with MethodParameter

use of com.liferay.portal.kernel.util.MethodParameter in project liferay-ide by liferay.

the class WebServicesServlet method getWebServicesXML.

protected String getWebServicesXML() {
    Map<String, Set<JSONWebServiceActionMapping>> jsonWebServiceClazz = getJSONWebServiceClazz();
    Document document = SAXReaderUtil.createDocument("UTF-8");
    Element root = SAXReaderUtil.createElement("templates");
    document.add(root);
    for (String jsonWebServiceClassName : jsonWebServiceClazz.keySet()) {
        Set<JSONWebServiceActionMapping> jsonWebServiceMappings = jsonWebServiceClazz.get(jsonWebServiceClassName);
        String className = jsonWebServiceClassName;
        if (className.endsWith("Impl")) {
            className = className.substring(0, className.length() - 4);
        }
        if (className.endsWith("Service")) {
            className = className.substring(0, className.length() - 7);
        }
        for (JSONWebServiceActionMapping jsonWebServiceActionMapping : jsonWebServiceMappings) {
            Element element = SAXReaderUtil.createElement("template");
            String path = jsonWebServiceActionMapping.getPath();
            int pos = path.lastIndexOf(CharPool.SLASH);
            String actionName = path.substring(pos + 1);
            element.add(SAXReaderUtil.createAttribute(element, "name", "jsonws-" + className + "-" + actionName));
            element.add(SAXReaderUtil.createAttribute(element, "description", "jsonws-" + className + "-" + actionName));
            element.add(SAXReaderUtil.createAttribute(element, "context", "javaScript"));
            element.add(SAXReaderUtil.createAttribute(element, "enabled", "true"));
            element.add(SAXReaderUtil.createAttribute(element, "autoinsert", "true"));
            StringBuffer sb = new StringBuffer();
            sb.append("Liferay.Service(\n	'");
            sb.append(path);
            sb.append("',\n	{\n");
            MethodParameter[] methodParameters = jsonWebServiceActionMapping.getMethodParameters();
            if (methodParameters.length > 0) {
                for (int t = 0; t < methodParameters.length; t++) {
                    String parameterName = methodParameters[t].getName();
                    sb.append("		");
                    sb.append(parameterName);
                    sb.append(":");
                    sb.append("${");
                    sb.append(parameterName);
                    sb.append("}");
                    if (t < methodParameters.length - 1) {
                        sb.append(",\n");
                    }
                }
                element.add(SAXReaderUtil.createAttribute(element, "id", "com.liferay.ide.ui.templates." + className + "." + actionName + methodParameters.length));
            } else {
                element.add(SAXReaderUtil.createAttribute(element, "id", "com.liferay.ide.ui.templates." + className + "." + actionName));
            }
            sb.append("\n	},\n	function(obj) {\n		console.log(obj);\n	}\n);");
            element.add(SAXReaderUtil.createText(sb.toString()));
            root.add(element);
        }
    }
    return document.asXML();
}
Also used : JSONWebServiceActionMapping(com.liferay.portal.kernel.jsonwebservice.JSONWebServiceActionMapping) Set(java.util.Set) LinkedHashSet(java.util.LinkedHashSet) Element(com.liferay.portal.kernel.xml.Element) Document(com.liferay.portal.kernel.xml.Document) MethodParameter(com.liferay.portal.kernel.util.MethodParameter)

Aggregations

JSONWebServiceActionMapping (com.liferay.portal.kernel.jsonwebservice.JSONWebServiceActionMapping)1 MethodParameter (com.liferay.portal.kernel.util.MethodParameter)1 Document (com.liferay.portal.kernel.xml.Document)1 Element (com.liferay.portal.kernel.xml.Element)1 LinkedHashSet (java.util.LinkedHashSet)1 Set (java.util.Set)1