/** * */ package org.hyperdata.scute.validate; import java.io.Reader; import java.io.StringReader; import javax.swing.text.Document; import org.hyperdata.scute.status.StatusEvent; import org.hyperdata.scute.status.StatusMonitor; /** * The Class ValidatableTurtleDocument. * * @author danny * * Wrapper around a Document with a method to validate contained Turtle syntax * * (the method will usually be called automatically by a org.hyperdata.scute.validate.Validator) */ public class ValidatableTurtleDocument implements Validatable { private Document document; /** * Instantiates a new validatable turtle document. * * @param document the document */ public ValidatableTurtleDocument(Document document){ this.document = document; } /* (non-Javadoc) * @see org.hyperdata.scute.validate.Validatable#validate() */ @Override public StatusEvent validate() throws Exception { StatusEvent statusEvent = null; statusEvent = parseString("", document.getText(0, document.getLength())); return statusEvent; } /** * Parses the string. * * @param baseURI the base uri * @param in the in * @return the status event */ public StatusEvent parseString(String baseURI, String in) { StatusEvent statusEvent = new StatusEvent(StatusMonitor.GREEN); Reader reader = new StringReader(in); // FileUtils.asUTF8(in); try { com.hp.hpl.jena.n3.turtle.parser.TurtleParser parser = new com.hp.hpl.jena.n3.turtle.parser.TurtleParser(reader); // parser.setEventHandler(new TurtleEventDump()) ; TurtleHandler handler = new TurtleHandler(System.out); parser.setEventHandler(handler); parser.setBaseURI(baseURI); parser.parse(); statusEvent.setDescription(Integer.toString(handler.getCount())+" triples"); } catch (Throwable e) { // more general than Exception System.out.println("GOT EXC "+e.getMessage()); statusEvent.setStatus(StatusMonitor.RED); statusEvent.setDescription(e.getMessage()); } return statusEvent; } }