Changeset 108:8d9cab64c335 for šablona/funkce/src/cz/frantovo/xmlWebGenerator/makra/Skriptování.java
Legend:
- Unmodified
- Added
- Removed
-
šablona/funkce/src/cz/frantovo/xmlWebGenerator/makra/Skriptování.java
r107 r108 41 41 public class Skriptování { 42 42 43 private enum FORMÁT { 44 45 xml, 46 xhtml, 47 text 48 } 43 49 /** 44 50 * klíč = jazyk – např. bash … … 71 77 public static Source interpretuj(String skriptText, String skriptSoubor, String jazyk, String výstupníFormát, String uriStránky, String nadpisStránky, String perexStránky) throws Exception { 72 78 String výstupSkriptu = získejVýstupSkriptu(skriptText, skriptSoubor, jazyk, uriStránky, nadpisStránky, perexStránky); 73 return vyrobXml(výstupSkriptu, "xml".equals(výstupníFormát));79 return vyrobXml(výstupSkriptu, zjistiFormát(výstupníFormát)); 74 80 } 75 81 … … 170 176 } 171 177 178 private static FORMÁT zjistiFormát(String výstupníFormát) { 179 try { 180 return FORMÁT.valueOf(výstupníFormát); 181 } catch (NullPointerException e) { 182 return FORMÁT.text; 183 } catch (IllegalArgumentException e) { 184 return FORMÁT.text; 185 } 186 } 187 172 188 /** 173 189 * @param zadání výstup vygenerovaný skriptem … … 176 192 * @throws Exception 177 193 */ 178 private static Source vyrobXml(String zadání, boolean xmlFormát) throws Exception {194 private static Source vyrobXml(String zadání, FORMÁT formát) throws Exception { 179 195 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 180 196 DocumentBuilder db = dbf.newDocumentBuilder(); 181 197 Document d; 182 198 183 if (xmlFormát) { 184 try { 185 zadání = "<html xmlns='" + XHTML + "' xmlns:m='" + MAKRO + "'><body>" + zadání + "</body></html>"; 186 d = db.parse(new ByteArrayInputStream(zadání.getBytes())); 187 } catch (Exception e) { 188 System.err.println("Chyba: Skript vrátil neplatné XML."); 189 throw e; 190 } 191 } else { 199 200 if (formát == FORMÁT.text) { 192 201 d = db.newDocument(); 193 202 Node html = d.createElementNS(XHTML, "html"); … … 197 206 html.appendChild(body); 198 207 d.appendChild(html); 208 } else { 209 if (formát == FORMÁT.xhtml) { 210 zadání = "<html xmlns='" + XHTML + "' xmlns:m='" + MAKRO + "'><body>" + zadání + "</body></html>"; 211 } 212 try { 213 d = db.parse(new ByteArrayInputStream(zadání.getBytes())); 214 } catch (Exception e) { 215 System.err.println("Chyba: Skript vrátil neplatné XML."); 216 throw e; 217 } 199 218 } 200 219