Coverage Report - org.webslinger.ext.wiki.WikiConvertor
 
Classes in this File Line Coverage Branch Coverage Complexity
WikiConvertor
81%
13/16
N/A
2
 
 1  
 package org.webslinger.ext.wiki;
 2  
 
 3  
 import java.io.IOException;
 4  
 import java.io.StringReader;
 5  
 import java.io.StringWriter;
 6  
 
 7  
 import org.webslinger.commons.vfs.FileConvertor;
 8  
 import org.webslinger.commons.vfs.FileResolver;
 9  
 import org.webslinger.ext.wiki.parser.AbstractWikiVisitor;
 10  
 import org.webslinger.ext.wiki.parser.ParseException;
 11  
 import org.webslinger.ext.wiki.parser.Wiki;
 12  
 import org.webslinger.ext.wiki.parser.WikiPage;
 13  
 import org.webslinger.ext.wiki.parser.WikiVisitor;
 14  
 
 15  
 public abstract class WikiConvertor extends FileConvertor {
 16  
     protected final AbstractWikiVisitor.Factory visitorFactory;
 17  
 
 18  4
     public WikiConvertor(AbstractWikiVisitor.Factory visitorFactory) {
 19  4
         this.visitorFactory = visitorFactory;
 20  4
     }
 21  
 
 22  
     public String convert(Object context, String fileName, String data, FileResolver resolver) throws IOException {
 23  3
         StringWriter writer = new StringWriter();
 24  3
         Wiki wiki = new Wiki(new StringReader(data));
 25  3
         WikiVisitor visitor = visitorFactory.newVisitor(fileName, writer, resolver);
 26  
         WikiPage page;
 27  
         try {
 28  3
             page = wiki.Page();
 29  0
         } catch (ParseException e) {
 30  0
             throw (IOException) new IOException(e.getMessage()).initCause(e);
 31  3
         }
 32  3
         Optimizer optimizer = new Optimizer();
 33  3
         optimizer.setConvertNewlinesToText(false);
 34  3
         page.jjtAccept(optimizer, null);
 35  3
         page.jjtAccept(visitor, context);
 36  3
         return writer.toString();
 37  
     }
 38  
 
 39  
     public String convert(String fileName, String data, FileResolver resolver) throws IOException {
 40  0
         throw new InternalError("This should never be called");
 41  
     }
 42  
 }