Changeset 27023


Ignore:
Timestamp:
2013-03-07T15:39:10+13:00 (11 years ago)
Author:
sjm84
Message:

Add a new service to get the templates from the gslib file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/DebugService.java

    r26669 r27023  
    1414import org.greenstone.gsdl3.util.GSXML;
    1515import org.greenstone.gsdl3.util.XMLConverter;
     16import org.greenstone.util.GlobalProperties;
    1617import org.w3c.dom.Document;
    1718import org.w3c.dom.Element;
     
    2930    protected static final String RETRIEVE_TEMPLATE_FROM_XML_FILE = "RetrieveXMLTemplateFromFile";
    3031    protected static final String SAVE_TEMPLATE_TO_XML_FILE = "SaveXMLTemplateToFile";
     32    protected static final String GET_GSLIB_ELEMENTS_FROM_FILE = "GetGSLIBElementsFromFile";   
    3133    /*********************************************************/
    3234
    33     String[] services = { RETRIEVE_TEMPLATE_FROM_XML_FILE, SAVE_TEMPLATE_TO_XML_FILE };
     35    String[] services = { RETRIEVE_TEMPLATE_FROM_XML_FILE, SAVE_TEMPLATE_TO_XML_FILE, GET_GSLIB_ELEMENTS_FROM_FILE };
    3436
    3537    public boolean configure(Element info, Element extra_info)
     
    294296        return result;
    295297    }
     298
     299    protected Element processGetGSLIBElementsFromFile(Element request)
     300    {
     301        Element result = GSXML.createBasicResponse(this.doc, GET_GSLIB_ELEMENTS_FROM_FILE);
     302       
     303        if (request == null)
     304        {
     305            GSXML.addError(this.doc, result, GET_GSLIB_ELEMENTS_FROM_FILE + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     306            return result;
     307        }
     308
     309        String lang = request.getAttribute(GSXML.LANG_ATT);
     310        String uid = request.getAttribute(GSXML.USER_ID_ATT);
     311       
     312        // Get the parameters of the request
     313        Element param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);
     314
     315        if (param_list == null)
     316        {
     317            GSXML.addError(this.doc, result, RETRIEVE_TEMPLATE_FROM_XML_FILE + ": No param list specified", GSXML.ERROR_TYPE_SYNTAX);
     318            return result;
     319        }
     320
     321        HashMap<String, Serializable> params = GSXML.extractParams(param_list, false);
     322
     323        String interfaceName = (String) params.get("interfaceName");
     324
     325        String filePath = GlobalProperties.getGSDL3Home() + File.separator + "interfaces" + File.separator + interfaceName + File.separator + "transform" + File.separator + "gslib.xsl";
     326        File xslFile = new File(filePath);
     327       
     328        System.err.println("1 -> " + filePath);
     329        if(xslFile.exists())
     330        {
     331            System.err.println("2");
     332            XMLConverter converter = new XMLConverter();
     333            Document xslDoc = converter.getDOM(xslFile, "UTF-8");
     334
     335            Element templateList = this.doc.createElement("templateList");
     336            String templateListString = "[";
     337           
     338            NodeList templateElems = xslDoc.getElementsByTagNameNS(GSXML.XSL_NAMESPACE, "template");
     339            for(int i = 0; i < templateElems.getLength(); i++)
     340            {
     341                Element currentElem = (Element)templateElems.item(i);
     342                if(currentElem.hasAttribute(GSXML.NAME_ATT))
     343                {
     344                    templateListString += "\"" + currentElem.getAttribute(GSXML.NAME_ATT) + "\"";
     345                    if(i < templateElems.getLength() - 1)
     346                    {
     347                        templateListString += ",";
     348                    }
     349                }
     350            }
     351           
     352            templateListString += "]";
     353            System.err.println("3 -> " + templateListString);
     354            templateList.setTextContent(templateListString);
     355            result.appendChild(templateList);
     356        }
     357        System.err.println("4");
     358       
     359        return result;
     360    }
    296361}
Note: See TracChangeset for help on using the changeset viewer.