Changeset 27023

Show
Ignore:
Timestamp:
07.03.2013 15:39:10 (7 years ago)
Author:
sjm84
Message:

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

Files:
1 modified

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}