diff -r 4bd1e353c527 -r 0efefbf5f8b6 java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Tue Jun 08 14:42:00 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Sun Jun 20 14:46:47 2010 +0200 @@ -20,99 +20,99 @@ */ public class Komentare { - private static final Logger log = Logger.getLogger(Komentare.class.getSimpleName()); + private static final Logger log = Logger.getLogger(Komentare.class.getSimpleName()); - /** - * Escapuje XML a doplní XHTML zalomení na konce řádků. - * @param komentar prostý text zadaný uživatelem - * @return XHTML komentář bez kořenového elementu - */ - public static String upravProstyText(String komentar) { - return zalomRadky(escapujXML(komentar)); - } + /** + * Escapuje XML a doplní XHTML zalomení na konce řádků. + * @param komentar prostý text zadaný uživatelem + * @return XHTML komentář bez kořenového elementu + */ + public static String upravProstyText(String komentar) { + return zalomRadky(escapujXML(komentar)); + } - /** - * Pokud uživatel zapomněl na odstavce, - * zalomíme řádky a zabalíme celý odstavec do jednoho odstavce - * @param komentar komentář bez odstavců - * @return komentář s odstavci - */ - public static String upravXHTML(String komentar) { - if (komentar.indexOf("

") == -1) { - return zalomRadky(komentar); - } else { - return komentar; + /** + * Pokud uživatel zapomněl na odstavce, + * zalomíme řádky a zabalíme celý odstavec do jednoho odstavce + * @param komentar komentář bez odstavců + * @return komentář s odstavci + */ + public static String upravXHTML(String komentar) { + if (komentar.indexOf("

") == -1) { + return zalomRadky(komentar); + } else { + return komentar; + } } - } - /** - * Převede konce řádků na <br/> - * a celé zabalí do <p/> - * @param komentar text se zalomenými řádky - * @return text s <br/> místo konců řádků - */ - private static String zalomRadky(String komentar) { - return "

" + komentar.replaceAll("\n", "
") + "

"; - } + /** + * Převede konce řádků na <br/> + * a celé zabalí do <p/> + * @param komentar text se zalomenými řádky + * @return text s <br/> místo konců řádků + */ + private static String zalomRadky(String komentar) { + return "

" + komentar.replaceAll("\n", "
") + "

"; + } - /** - * - * @param komentar vstupní XHTML - * @return XHTML obalené kořenovým elementem - */ - public static String obal(String komentar) { - return "
" + komentar + "
"; - } + /** + * + * @param komentar vstupní XHTML + * @return XHTML obalené kořenovým elementem + */ + public static String obal(String komentar) { + return "
" + komentar + "
"; + } - /** - * zkontroluje komentář oproti schématu. - * - * TODO: omezit maximální délku? - * TODO: omezit komentáře? - * - * @param komentar - * @return jestli komentář odpovídá - */ - public static Document zkontroluj(String komentar) throws KomentarovaVyjimka { - try { - URL soubor = Komentare.class.getClassLoader().getResource("cz/frantovo/nekurak/util/komentář.xsd"); - SchemaFactory tovarnaSchemat = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); - Schema schema = tovarnaSchemat.newSchema(soubor); + /** + * zkontroluje komentář oproti schématu. + * + * TODO: omezit maximální délku? + * TODO: omezit komentáře? + * + * @param komentar + * @return jestli komentář odpovídá + */ + public static Document zkontroluj(String komentar) throws KomentarovaVyjimka { + try { + URL soubor = Komentare.class.getClassLoader().getResource("cz/frantovo/nekurak/util/komentář.xsd"); + SchemaFactory tovarnaSchemat = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); + Schema schema = tovarnaSchemat.newSchema(soubor); - DocumentBuilderFactory tovarnaDB = DocumentBuilderFactory.newInstance(); - tovarnaDB.setSchema(schema); + DocumentBuilderFactory tovarnaDB = DocumentBuilderFactory.newInstance(); + tovarnaDB.setSchema(schema); - DocumentBuilder db = tovarnaDB.newDocumentBuilder(); - db.setErrorHandler(new ErrorHandler() { + DocumentBuilder db = tovarnaDB.newDocumentBuilder(); + db.setErrorHandler(new ErrorHandler() { - public void warning(SAXParseException e) throws SAXException { - throw e; + public void warning(SAXParseException e) throws SAXException { + throw e; + } + + public void error(SAXParseException e) throws SAXException { + /** + * neodpovídá schématu + * TODO: poslat hlášku, v čem je chyba + */ + throw e; + } + + public void fatalError(SAXParseException e) throws SAXException { + /** invalidní XML – neuzavřené značky atd. */ + throw e; + } + }); + Document dokument = db.parse(new ByteArrayInputStream(komentar.getBytes("UTF-8"))); + return dokument; + } catch (Exception e) { + throw new KomentarovaVyjimka("Neplatný komentář: " + komentar, e); } - public void error(SAXParseException e) throws SAXException { - /** - * neodpovídá schématu - * TODO: poslat hlášku, v čem je chyba - */ - throw e; - } - public void fatalError(SAXParseException e) throws SAXException { - /** invalidní XML – neuzavřené značky atd. */ - throw e; - } - }); - Document dokument = db.parse(new ByteArrayInputStream(komentar.getBytes("UTF-8"))); - return dokument; - } catch (Exception e) { - throw new KomentarovaVyjimka("Neplatný komentář: " + komentar, e); } + private static String escapujXML(String str) { + return str.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'"); - } - - private static String escapujXML(String str) { - return str.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'"); - - } + } }