1 16 package org.outerj.daisy.publisher.serverimpl.requestmodel; 17 18 import org.xml.sax.ContentHandler ; 19 import org.outerj.daisy.repository.comment.Comments; 20 import org.outerj.daisy.repository.user.UserManager; 21 import org.outerj.daisy.repository.RepositoryException; 22 import org.outerj.daisy.publisher.serverimpl.StripDocumentHandler; 23 import org.outerj.daisy.publisher.serverimpl.InsertBreaksInCommentsHandler; 24 import org.outerj.daisy.publisher.serverimpl.DummyLexicalHandler; 25 import org.outerx.daisy.x10.CommentsDocument; 26 import org.outerx.daisy.x10.CommentDocument; 27 import org.apache.xmlbeans.XmlCursor; 28 29 import java.text.DateFormat ; 30 31 public class CommentsRequest implements Request { 32 public void process(ContentHandler contentHandler, PublisherContext publisherContext) throws Exception { 33 Comments comments = publisherContext.getRepository().getCommentManager().getComments(publisherContext.getVariantKey()); 34 CommentsDocument commentsDocument = comments.getXml(); 35 36 UserManager userManager = publisherContext.getRepository().getUserManager(); 37 DateFormat dateFormat = publisherContext.getTimestampFormat(); 38 annotateComments(commentsDocument.getComments().getCommentArray(), userManager, dateFormat); 39 40 commentsDocument.save(new StripDocumentHandler(new InsertBreaksInCommentsHandler(contentHandler)), new DummyLexicalHandler()); 41 } 42 43 private void annotateComments(CommentDocument.Comment[] commentsXml, UserManager userManager, DateFormat dateFormat) throws RepositoryException { 44 for (int i = 0; i < commentsXml.length; i++) { 45 CommentDocument.Comment commentXml = commentsXml[i]; 46 XmlCursor cursor = commentXml.newCursor(); 47 cursor.toNextToken(); 48 cursor.insertAttributeWithValue("createdOnFormatted", dateFormat.format(commentXml.getCreatedOn().getTime())); 49 cursor.insertAttributeWithValue("createdByDisplayName", userManager.getUserDisplayName(commentXml.getCreatedBy())); 50 cursor.dispose(); 51 } 52 } 53 } 54 | Popular Tags |