Changeset 24247
- Timestamp:
- 2011-07-08T16:38:27+12:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/FormatAction.java
r24203 r24247 55 55 56 56 String coll = (String)params.get(GSParams.COLLECTION); //SYSTEM_CLUSTER); 57 //String subaction = (String)params.get(GSParams.SUBACTION);58 57 String service = (String)params.get(GSParams.SERVICE); 59 58 String classifier = (String)params.get("cl"); 60 61 62 logger.error("Collection="+coll);63 logger.error("Subaction="+subaction);64 logger.error("Service="+service);65 logger.error("Classifier="+classifier);66 67 59 68 60 String to = ""; … … 81 73 mr_request_message.appendChild(mr_request); 82 74 83 //Element format = this.doc.createElement(GSXML.FORMAT_STRING_ELEM);84 //mr_request.appendChild(format);85 86 75 String format_string = (String)params.get("data"); 87 //logger.error("Original format string");88 //logger.error(format_string);89 76 90 77 Element page_response = this.doc.createElement(GSXML.RESPONSE_ELEM); 91 78 92 79 Iterator it = params.keySet().iterator(); 93 //while(it.hasNext())94 //{95 // logger.error("Param: "+it.next());96 //}97 80 98 try { 99 //DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 100 //DocumentBuilder builder = factory.newDocumentBuilder(); 101 //String input = "<html><head><title></title></head><body>" + format_string + "</body></html>"; 102 //String input = format_string; 103 //InputSource is = new InputSource( new StringReader( input ) ); 104 //Document d = (Document) builder.parse( is ); 105 Document d = this.converter.getDOM(format_string); //(Document) builder.parse( is ); 106 //Node n1 = d.getFirstChild(); 107 //Document d2 = (Document) this.doc.importNode(e, true); 81 if(subaction.equals("saveDocument")) 82 { 83 Element format = this.doc.createElement(GSXML.FORMAT_STRING_ELEM); 84 try{ 85 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 86 DocumentBuilder builder = factory.newDocumentBuilder(); 87 InputSource is = new InputSource( new StringReader( format_string ) ); 88 Document d = (Document) builder.parse( is ); 89 Node n1 = d.getFirstChild(); 108 90 109 //Element format_statement = this.doc.importNode(d, true); 91 Element format_statement = (Element) this.doc.importNode(n1, true); 92 format.appendChild(format_statement); 93 mr_request.appendChild(format); 94 } catch( Exception ex ) { 95 logger.error("There was an exception "+ex); 110 96 111 // Call XSLT to transform document to xml format string 112 XMLTransformer transformer = new XMLTransformer(); 113 // HOW DO I DO THIS PROPERLY? 114 //String style = stylesheetFile(String gsdl3_home, String site_name, String collection, String interface_name, ArrayList base_interfaces, String filename); 115 //Document style_doc = this.converter.getDOM(new File(style), "UTF-8"); //"/home/sam/greenstone3/web/interfaces/oran/transform/formatString.xsl"), "UTF-8"); /*************************/ 116 Document style_doc = this.converter.getDOM(new File("/research/sjb48/greenstone3/web/interfaces/oran/transform/formatString.xsl"), "UTF-8"); /*************************/ 97 StringWriter sw = new StringWriter(); 98 PrintWriter pw = new PrintWriter(sw, true); 99 ex.printStackTrace(pw); 100 pw.flush(); 101 sw.flush(); 102 logger.error(sw.toString()); 103 } 117 104 118 if(style_doc == null)119 logger.error("style_doc is null");120 121 // not sure what to do here - some code from Transforming Receptionist122 //String transformed = transformer.transformToString(style_doc, d);123 logger.error("About to transform");124 Node transformed = (Node) transformer.transform(style_doc, d);125 // Failing org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. ; SystemID: file:///home/sam/greenstone3/packages/tomcat/bin/dummy.xsl126 127 logger.error("Transform successful?");128 129 if(transformed==null) // not null130 logger.error("TRANSFORMED IS NULL");131 132 if(transformed.getNodeType() == Node.DOCUMENT_NODE)133 transformed = ((Document)transformed).getDocumentElement();134 logger.error("Node type: "+transformed.getNodeType());135 136 //logger.error("begin import");137 //Node imported = this.doc.importNode(transformed, true); // There was an exception org.w3c.dom.DOMException: NOT_SUPPORTED_ERR: The implementation does not support the requested type of object or operation.138 //logger.error("finished import");139 140 //String format_string2 = GSXML.xmlNodeToString(imported); // null pointer exception occuring here141 //logger.error("format string="+format_string2);142 143 Element format = this.doc.createElement(GSXML.FORMAT_STRING_ELEM);144 //GSXML.setNodeText(format, transformed);145 format.appendChild(this.doc.importNode(transformed,true));146 //format.setNodeValue(transformed);147 mr_request.appendChild(format);148 logger.error("Transformed: "+transformed);149 150 151 //page_response.appendChild(this.doc.importNode(e, true));152 } catch( Exception ex ) {153 logger.error("There was an exception "+ex);154 155 StringWriter sw = new StringWriter();156 PrintWriter pw = new PrintWriter(sw, true);157 ex.printStackTrace(pw);158 pw.flush();159 sw.flush();160 logger.error(sw.toString());161 105 } 162 106 107 else 108 { 163 109 164 // Call XSLT to transform document to xml format string165 //XMLTransformer transformer = new XMLTransformer();110 try { 111 Document d = this.converter.getDOM(format_string); 166 112 167 // not sure what to do here - some code from Transforming Receptionist 168 //transformer.transformToString(Document stylesheet, Document source); 113 // Call XSLT to transform document to xml format string 114 XMLTransformer transformer = new XMLTransformer(); 115 String style = GSFile.interfaceStylesheetFile(GlobalProperties.getGSDL3Home(),(String)this.config_params.get(GSConstants.INTERFACE_NAME), "formatString.xsl"); 116 //logger.error("Style doc is "+style+", compared to /research/sjb48/greenstone3/web/interfaces/oran/transform/formatString.xsl"); 117 Document style_doc = this.converter.getDOM(new File(style), "UTF-8"); 118 //Document style_doc = this.converter.getDOM(new File("/research/sjb48/greenstone3/web/interfaces/oran/transform/formatString.xsl"), "UTF-8"); /*************************/ 169 119 170 // create a mesage to send to the collection object via the message router 120 if(style_doc == null) 121 logger.error("style_doc is null"); 122 123 logger.error("About to transform"); 124 Node transformed = (Node) transformer.transform(style_doc, d); 125 126 if(transformed.getNodeType() == Node.DOCUMENT_NODE) 127 transformed = ((Document)transformed).getDocumentElement(); 128 129 Element format = this.doc.createElement(GSXML.FORMAT_STRING_ELEM); 130 format.appendChild(this.doc.importNode(transformed,true)); 131 mr_request.appendChild(format); 132 logger.error("Transformed: "+transformed); 133 134 } catch( Exception ex ) { 135 logger.error("There was an exception "+ex); 136 137 StringWriter sw = new StringWriter(); 138 PrintWriter pw = new PrintWriter(sw, true); 139 ex.printStackTrace(pw); 140 pw.flush(); 141 sw.flush(); 142 logger.error(sw.toString()); 143 } 144 } 171 145 172 146 Node response_message = this.mr.process(mr_request_message);
Note:
See TracChangeset
for help on using the changeset viewer.