Author: mfortun Date: 2011-07-27 18:06:15 +0200 (Wed, 27 Jul 2011) New Revision: 1094 Url: http://nuiton.org/repositories/revision/wikitty/1094 Log: * remove custom filter * now use improved Generator filter template Removed: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationUiFilter.java Modified: trunk/wikitty-publication/pom.xml trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java Modified: trunk/wikitty-publication/pom.xml =================================================================== --- trunk/wikitty-publication/pom.xml 2011-07-27 13:25:23 UTC (rev 1093) +++ trunk/wikitty-publication/pom.xml 2011-07-27 16:06:15 UTC (rev 1094) @@ -110,7 +110,7 @@ <dependency> <groupId>org.nuiton.processor</groupId> <artifactId>nuiton-processor</artifactId> - <version>1.2.1</version> + <version>1.2.2-SNAPSHOT</version> </dependency> </dependencies> Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationUiFilter.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationUiFilter.java 2011-07-27 13:25:23 UTC (rev 1093) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/PublicationUiFilter.java 2011-07-27 16:06:15 UTC (rev 1094) @@ -1,164 +0,0 @@ -package org.nuiton.wikitty.publication; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.processor.filters.DefaultFilter; - -/** - * Filter inspired from generatorTemplateFilterIn. - * - * Use to parse any wikittyPubText content to transform - * - * @author mfortun - * - */ -public class PublicationUiFilter extends DefaultFilter { - - private static final Log log = LogFactory.getLog(PublicationUiFilter.class); - - protected String beginParenthese = EMPTY_STRING; - - protected String endParenthese = EMPTY_STRING; - - protected boolean passEmptyLine; - protected boolean writeParentheses; - - protected String concatString; - - protected String stringDelim; - - protected String writeString; - protected String endingCar; - - public PublicationUiFilter() { - stringDelim = "\""; - concatString = "+"; - passEmptyLine = false; - writeParentheses = true; - writeString = "output.write"; - endingCar = ";"; - } - - /** - * méthode appelée lorsqu'on a la chaîne entière entre le header et le - * footer. - * - * @param ch - * la chaîne trouvé - * @return ce qu'il faut écrire dans le fichier de sortie - */ - @Override - protected String performInFilter(String ch) { - if (writeParentheses) { - beginParenthese = "("; - endParenthese = ")"; - } else { - beginParenthese = EMPTY_STRING; - endParenthese = EMPTY_STRING; - } - if (ch.startsWith("=")) { - return stringDelim + concatString + ch.substring(1) + concatString - + stringDelim; - } - return stringDelim + endParenthese + endingCar + ch + writeString - + beginParenthese + stringDelim; - } - - /** - * Converti les fin de commentaire *) en fin normal de commentraire - * - * @param ch - * la chaine a convertir - * @return la chaine convertie - */ - protected String convertEndComment(String ch) { - String result = ch.replaceAll("\\*\\)", "*/"); - return result; - } - - /** - * methode appele lorsqu'on a la chaine entiere a l'exterieur du - * header/footer - * - * @param ch - * la chaine trouve - * @return ce qu'il faut ecrire dans le fichier de sortie - */ - @Override - protected String performOutFilter(String ch) { - if (writeParentheses) { - beginParenthese = "("; - endParenthese = ")" + endingCar; - } else { - beginParenthese = EMPTY_STRING; - endParenthese = EMPTY_STRING; - } - String result = convertEndComment(ch).replaceAll("\"", "\\\\\"") - .replaceAll( - "(\r\n|\n|\r)", - "\\\\n\"" + endParenthese + endingCar + stringDelim - + writeString + beginParenthese + stringDelim); - // it's important that \r\n is first in regexp. - - return result; - } - - @Override - protected String getHeader() { - return "<%"; - } - - @Override - protected String getFooter() { - return "%>"; - } - - public boolean isPassEmptyLine() { - return passEmptyLine; - } - - public void setPassEmptyLine(boolean passEmptyLine) { - this.passEmptyLine = passEmptyLine; - } - - public String getConcatString() { - return concatString; - } - - public void setConcatString(String concatString) { - this.concatString = concatString; - } - - public String getStringDelim() { - return stringDelim; - } - - public void setStringDelim(String stringDelim) { - this.stringDelim = stringDelim; - } - - public boolean isWriteParentheses() { - return writeParentheses; - } - - public void setWriteParentheses(boolean writeParentheses) { - this.writeParentheses = writeParentheses; - } - - public String getWriteString() { - return writeString; - } - - public void setWriteString(String writeString) { - this.writeString = writeString; - } - - public String getEndingCar() { - return endingCar; - } - - public void setEndingCar(String endingCar) { - this.endingCar = endingCar; - } - -} Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-27 13:25:23 UTC (rev 1093) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-27 16:06:15 UTC (rev 1094) @@ -1,9 +1,17 @@ package org.nuiton.wikitty.publication; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; +import org.nuiton.processor.Processor; +import org.nuiton.processor.ProcessorUtil; +import org.nuiton.processor.filters.GeneratorTemplatesFilter; +import org.nuiton.processor.filters.GeneratorTemplatesFilterIn; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.publication.entities.WikittyPubText; @@ -42,9 +50,12 @@ filtersOptions= new HashMap<String, FilterOption>(); } - public WikittyPubText transformPubUIToPubText(WikittyPubText wikitty) { + public WikittyPubText transformPubUIToPubText(WikittyPubText wikitty) throws IOException { - PublicationUiFilter filterUI = new PublicationUiFilter(); + + + GeneratorTemplatesFilter filter = new GeneratorTemplatesFilter(); + GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn(filter); String mime = wikitty.getMimeType(); String initialVersion = wikitty.getWikittyVersion(); @@ -63,12 +74,13 @@ foption = defaultFilterOption; } - filterUI.setConcatString(foption.getConcatChar()); - filterUI.setPassEmptyLine(foption.isPassEmptyLine()); - filterUI.setWriteParentheses(foption.isWriteParentheses()); - filterUI.setStringDelim(foption.getStringDelim()); - filterUI.setWriteString(foption.getWriteString()); - filterUI.setEndingCar(foption.getEndingCar()); + filterIn.setConcacChar(foption.getConcatChar()); + filterIn.setStringDelim(foption.getStringDelim()); + filterIn.getParent().setWriteString(foption.getWriteString()); + filterIn.setEndCar(foption.getEndingCar()); + + + decoringEnd = foption.getStringDelim() + foption.getEndingCar(); decoringAffect = foption.getPrefixFirstWriteString() @@ -81,9 +93,20 @@ + ".setContentType(\"" + DEFAULT_MIME_TYPE_RETURN + "\")" + foption.getEndingCar(); + Processor proc= new Processor(); + proc.setInputFilter(filterIn); + + + + StringWriter writer = new StringWriter(); + // process string + proc.process(new StringReader(wikitty.getContent()), writer); + + + decoredContent += decoringAffect; // replace element between <% %> and <%= %> - decoredContent += filterUI.parse(wikitty.getContent()); + decoredContent += writer.toString(); // end of string decoredContent += decoringEnd;