@Test public void useTheCommentsRelation() { // Create a new user and save it User bob = new User("*****@*****.**", "secret", "Bob").save(); // Create a new post Post bobPost = new Post(bob, "My first post", "Hello world").save(); // Post a first comment bobPost.addComment("Jeff", "Nice post"); bobPost.addComment("Tom", "I knew that !"); // Count things assertEquals(1, User.count()); assertEquals(1, Post.count()); assertEquals(2, Comment.count()); // Retrieve Bob's post bobPost = Post.find("byAuthor", bob).first(); assertNotNull(bobPost); // Navigate to comments assertEquals(2, bobPost.comments.size()); assertEquals("Jeff", bobPost.comments.get(0).author); // Delete the post bobPost.delete(); // Check that all comments have been deleted assertEquals(1, User.count()); assertEquals(0, Post.count()); assertEquals(0, Post.count()); assertEquals(0, Comment.count()); }
/** Tests that listeners are fired when a comment is rejected. */ public void testListenersFiredWhenCommentRejected() throws Exception { final StringBuffer buf = new StringBuffer("123"); final Comment comment = blogEntry.createComment( "title", "body", "author", "email", "website", "avatar", "127.0.0.1"); blogEntry.addComment(comment); comment.setPending(); service.putBlogEntry(blogEntry); CommentListener listener = new CommentListener() { public void commentAdded(CommentEvent event) {} public void commentRemoved(CommentEvent event) {} public void commentApproved(CommentEvent event) {} public void commentRejected(CommentEvent event) { assertEquals(comment, event.getSource()); buf.reverse(); } }; blog.getEventListenerList().addCommentListener(listener); comment.setRejected(); service.putBlogEntry(blogEntry); assertEquals("321", buf.toString()); }
public void addComment(Comment comment) { if (!comment.isCommentSet()) { List<Comment> commentList = getComments(); commentList.add(comment); comment.commentSet = true; } }
/** * Delete a comment from a song. * * @param authorId The author of the song. */ public void deleteComment(String authorId, Date date) { for (Comment comment : comments) { if (comment.getAuthor().equals(authorId) && comment.getDate().equals(date)) { comments.remove(comment); return; } } }
private void mapComment(JSONObject jsonComment, Comment comment) throws JSONException { comment.setId(jsonComment.getInt("id")); comment.setUsername( jsonComment.getJSONObject("links").getJSONObject("user").getString("title")); comment.setText(jsonComment.getString("text")); comment.setTimestamp(ReviewboardUtil.marshallDate(jsonComment.getString("timestamp"))); }
public String toString() { StringBuilder b = new StringBuilder(); Key k = KeyFactory.stringToKey(key); b.append("Question (").append(k.getId()).append(") : ").append(" Text=").append(questionText); b.append(" Date Posted=").append(datePosted); b.append(" ParentInfo = ").append(k.getParent().toString()); b.append("\n"); for (Comment c : comments) { b.append("\t\t").append(c.toString()).append("\n"); } return b.toString(); }
public ArrayList<UserComment> retrieveEntryComments(String userId, long partId) { Entry entry = dao.get(partId); if (entry == null) return null; authorization.expectRead(userId, entry); // comments ArrayList<Comment> comments = commentDAO.retrieveComments(entry); ArrayList<UserComment> userComments = new ArrayList<>(); for (Comment comment : comments) { userComments.add(comment.toDataTransferObject()); } return userComments; }
@Test public void postComments() { // Create a new user and save it User bob = new User("*****@*****.**", "secret", "Bob").save(); // Create a new post Post bobPost = new Post(bob, "My first post", "Hello world").save(); // Post a first comment new Comment(bobPost, "Jeff", "Nice Post").save(); new Comment(bobPost, "Tom", "I knew that !").save(); // Retrieve all comments List<Comment> bobPostComments = Comment.find("byPost", bobPost).fetch(); // Tests assertEquals(2, bobPostComments.size()); Comment firstComment = bobPostComments.get(0); assertNotNull(firstComment); assertEquals("Jeff", firstComment.author); assertEquals("Nice Post", firstComment.content); assertNotNull(firstComment.postedAt); Comment secondComment = bobPostComments.get(1); assertNotNull(secondComment); assertEquals("Tom", secondComment.author); assertEquals("I knew that !", secondComment.content); assertNotNull(secondComment.postedAt); }
/** Tests that comment listeners are fired when a blog entry is removed. */ public void testListenersFiredForCommentsWhenBlogEntryRemoved() throws Exception { final Comment comment1 = blogEntry.createComment( "title", "body", "author", "email", "website", "avatar", "127.0.0.1"); final Comment comment2 = blogEntry.createComment( "title", "body", "author", "email", "website", "avatar", "127.0.0.1"); final Comment comment3 = blogEntry.createComment( "title", "body", "author", "email", "website", "avatar", "127.0.0.1"); blogEntry.addComment(comment1); blogEntry.addComment(comment2); service.putBlogEntry(blogEntry); comment3.setParent(comment2); blogEntry.addComment(comment3); service.putBlogEntry(blogEntry); final List comments = new ArrayList(); CommentListener listener = new CommentListener() { public void commentAdded(CommentEvent event) { fail(); } public void commentRemoved(CommentEvent event) { comments.add(event.getSource()); } public void commentApproved(CommentEvent event) { fail(); } public void commentRejected(CommentEvent event) { fail(); } }; blog.getEventListenerList().addCommentListener(listener); service.removeBlogEntry(blogEntry); assertEquals(comment1, comments.get(0)); assertEquals(comment2, comments.get(1)); assertEquals(comment3, comments.get(2)); }
public UserComment updateEntryComment( String userId, long partId, long commentId, UserComment userComment) { Entry entry = dao.get(partId); if (entry == null) return null; authorization.canRead(userId, entry); Comment comment = commentDAO.get(commentId); if (comment == null) return createEntryComment(userId, partId, userComment); if (comment.getEntry().getId() != partId) return null; if (userComment.getMessage() == null || userComment.getMessage().isEmpty()) return null; comment.setBody(userComment.getMessage()); comment.setModificationTime(new Date()); return commentDAO.update(comment).toDataTransferObject(); }
public UserComment createEntryComment(String userId, long partId, UserComment newComment) { Entry entry = dao.get(partId); if (entry == null) return null; authorization.canRead(userId, entry); Account account = accountController.getByEmail(userId); Comment comment = new Comment(); comment.setAccount(account); comment.setEntry(entry); comment.setBody(newComment.getMessage()); comment.setCreationTime(new Date()); comment = commentDAO.create(comment); if (newComment.getSamples() != null) { SampleDAO sampleDAO = DAOFactory.getSampleDAO(); for (PartSample partSample : newComment.getSamples()) { Sample sample = sampleDAO.get(partSample.getId()); if (sample == null) continue; comment.getSamples().add(sample); sample.getComments().add(comment); } } comment = commentDAO.update(comment); return comment.toDataTransferObject(); }
public void updateTickets(JiraTickets tickets) throws ExecutionException, InterruptedException { for (JiraTicket t : tickets) { Promise<Issue> issuePromise = issueRestClient.getIssue(t.getId()); Issue i = issuePromise.get(); // find transition (we need ID) Iterable<Transition> transitions = issueRestClient.getTransitions(i.getTransitionsUri()).get(); String tName = "Hotfix Failed"; if (t.isValid()) { tName = "Out On Dev"; } Transition transition = find(transitions, tName); if (transition == null) { continue; } // prepare fields // List<FieldInput> fields = Arrays.asList( new FieldInput("resolution", // ComplexIssueInputFieldValue.with("name", "RerunPass"))); Comment comment = Comment.valueOf(StringUtils.join(t.getValidationMessages(), "\n")); issueRestClient.transition(i, new TransitionInput(transition.getId(), comment)); } }
public void addComment(Comment c) { Assert.notNull(c, "Comment may not be null"); Assert.hasText(c.getBlogPostId(), "Comment must have a blog post id"); db.create(c); }
public boolean visit(Comment s) throws Exception { Map<String, String> parameters = createInitialParameters(s); parameters.put("type", Comment.getCommentType(s.getCommentType())); xmlWriter.startTag("Comment", parameters); return true; }
public File generateXLSResponse(QueryResult queryResult, Locale locale, String baseURL) { File excelFile = new File("export_parts.xls"); // Blank workbook XSSFWorkbook workbook = new XSSFWorkbook(); // Create a blank sheet XSSFSheet sheet = workbook.createSheet("Parts Data"); String header = StringUtils.join(queryResult.getQuery().getSelects(), ";"); String[] columns = header.split(";"); Map<Integer, String[]> data = new HashMap<>(); String[] headerFormatted = createXLSHeaderRow(header, columns, locale); data.put(1, headerFormatted); Map<Integer, String[]> commentsData = new HashMap<>(); String[] headerComments = createXLSHeaderRowComments(header, columns); commentsData.put(1, headerComments); List<String> selects = queryResult.getQuery().getSelects(); int i = 1; for (QueryResultRow row : queryResult.getRows()) { i++; data.put(i, createXLSRow(selects, row, baseURL)); commentsData.put(i, createXLSRowComments(selects, row)); } // Iterate over data and write to sheet Set<Integer> keyset = data.keySet(); int rownum = 0; for (Integer key : keyset) { Row row = sheet.createRow(rownum++); String[] objArr = data.get(key); int cellnum = 0; for (String obj : objArr) { Cell cell = row.createCell(cellnum++); cell.setCellValue(obj); } CreationHelper factory = workbook.getCreationHelper(); Drawing drawing = sheet.createDrawingPatriarch(); String[] commentsObjArr = commentsData.get(key); cellnum = 0; for (String commentsObj : commentsObjArr) { if (commentsObj.length() > 0) { Cell cell = row.getCell(cellnum) != null ? row.getCell(cellnum) : row.createCell(cellnum); // When the comment box is visible, have it show in a 1x3 space ClientAnchor anchor = factory.createClientAnchor(); anchor.setCol1(cell.getColumnIndex()); anchor.setCol2(cell.getColumnIndex() + 1); anchor.setRow1(row.getRowNum()); anchor.setRow2(row.getRowNum() + 1); Comment comment = drawing.createCellComment(anchor); RichTextString str = factory.createRichTextString(commentsObj); comment.setString(str); // Assign the comment to the cell cell.setCellComment(comment); } cellnum++; } } // Define header style Font headerFont = workbook.createFont(); headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD); headerFont.setFontHeightInPoints((short) 10); headerFont.setFontName("Courier New"); headerFont.setItalic(true); headerFont.setColor(IndexedColors.WHITE.getIndex()); CellStyle headerStyle = workbook.createCellStyle(); headerStyle.setFont(headerFont); headerStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); headerStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); // Set header style for (int j = 0; j < columns.length; j++) { Cell cell = sheet.getRow(0).getCell(j); cell.setCellStyle(headerStyle); if (cell.getCellComment() != null) { String comment = cell.getCellComment().getString().toString(); if (comment.equals(QueryField.CTX_PRODUCT_ID) || comment.equals(QueryField.CTX_SERIAL_NUMBER) || comment.equals(QueryField.PART_MASTER_NUMBER)) { for (int k = 0; k < queryResult.getRows().size(); k++) { Cell grayCell = sheet.getRow(k + 1).getCell(j) != null ? sheet.getRow(k + 1).getCell(j) : sheet.getRow(k + 1).createCell(j); grayCell.setCellStyle(headerStyle); } } } } try { // Write the workbook in file system FileOutputStream out = new FileOutputStream(excelFile); workbook.write(out); out.close(); } catch (Exception e) { LOGGER.log(Level.FINEST, null, e); } return excelFile; }
public void testAddRemoveComment() { Map vars = fillVariables(users, groups); String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, activationTime = now}), "; str += "deadlines = new Deadlines(),"; str += "delegation = new Delegation(),"; str += "peopleAssignments = new PeopleAssignments(),"; str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })"; Task task = (Task) eval(new StringReader(str), vars); client.addTask(task, null); long taskId = task.getId(); Comment comment = new Comment(); Date addedAt = new Date(System.currentTimeMillis()); comment.setAddedAt(addedAt); comment.setAddedBy(users.get("luke")); comment.setText("This is my comment1!!!!!"); client.addComment(taskId, comment); long commentId = comment.getId(); Task task1 = client.getTask(taskId); // We are reusing this for local clients where the object is the same // assertNotSame(task, task1); // assertFalse(task.equals(task1)); List<Comment> comments1 = task1.getTaskData().getComments(); assertEquals(1, comments1.size()); Comment returnedComment = comments1.get(0); assertEquals("This is my comment1!!!!!", returnedComment.getText()); assertEquals(addedAt, returnedComment.getAddedAt()); assertEquals(users.get("luke"), returnedComment.getAddedBy()); assertEquals(commentId, (long) returnedComment.getId()); // Make the same as the returned tasks, so we can test equals task.getTaskData().setComments(comments1); task.getTaskData().setStatus(Status.Created); assertEquals(task, task1); // test we can have multiple comments comment = new Comment(); addedAt = new Date(System.currentTimeMillis()); comment.setAddedAt(addedAt); comment.setAddedBy(users.get("tony")); comment.setText("This is my comment2!!!!!"); client.addComment(taskId, comment); long commentId2 = comment.getId(); task1 = client.getTask(taskId); List<Comment> comments2 = task1.getTaskData().getComments(); assertEquals(2, comments2.size()); // make two collections the same and compare comments1.add(comment); assertTrue(CollectionUtils.equals(comments1, comments2)); client.deleteComment(taskId, commentId2); task1 = client.getTask(taskId); comments2 = task1.getTaskData().getComments(); assertEquals(1, comments2.size()); assertEquals("This is my comment1!!!!!", comments2.get(0).getText()); }
/** * Changes a comment for a team. * * @param comment the comment to update */ public void updateComment(Comment comment) { comments.remove(comment); if (comment.getText() != null) comments.add(comment); validate(); }
public static void writePage(String docfile, String relative, String outfile) { HDF hdf = DroidDoc.makeHDF(); /* System.out.println("docfile='" + docfile + "' relative='" + relative + "'" + "' outfile='" + outfile + "'"); */ String filedata = readFile(docfile); // The document is properties up until the line "@jd:body". // Any blank lines are ignored. int start = -1; int lineno = 1; Matcher lines = LINE.matcher(filedata); String line = null; while (lines.find()) { line = lines.group(1); if (line.length() > 0) { if (line.equals("@jd:body")) { start = lines.end(); break; } Matcher prop = PROP.matcher(line); if (prop.matches()) { String key = prop.group(1); String value = prop.group(2); hdf.setValue(key, value); } else { break; } } lineno++; } if (start < 0) { System.err.println(docfile + ":" + lineno + ": error parsing docfile"); if (line != null) { System.err.println(docfile + ":" + lineno + ":" + line); } System.exit(1); } // if they asked to only be for a certain template, maybe skip it String fromTemplate = hdf.getValue("template.which", ""); String fromPage = hdf.getValue("page.onlyfortemplate", ""); if (!"".equals(fromPage) && !fromTemplate.equals(fromPage)) { return; } // and the actual text after that String commentText = filedata.substring(start); Comment comment = new Comment(commentText, null, new SourcePositionInfo(docfile, lineno, 1)); TagInfo[] tags = comment.tags(); TagInfo.makeHDF(hdf, "root.descr", tags); hdf.setValue("commentText", commentText); // write the page using the appropriate root template, based on the // whichdoc value supplied by build String fromWhichmodule = hdf.getValue("android.whichmodule", ""); if (fromWhichmodule.equals("online-pdk")) { // leaving this in just for temporary compatibility with pdk doc hdf.setValue("online-pdk", "true"); // add any conditional login for root template here (such as // for custom left nav based on tab etc. ClearPage.write(hdf, "docpage.cs", outfile); } else { if (outfile.indexOf("sdk/") != -1) { hdf.setValue("sdk", "true"); if ((outfile.indexOf("index.html") != -1) || (outfile.indexOf("features.html") != -1)) { ClearPage.write(hdf, "sdkpage.cs", outfile); } else { ClearPage.write(hdf, "docpage.cs", outfile); } } else if (outfile.indexOf("guide/") != -1) { hdf.setValue("guide", "true"); ClearPage.write(hdf, "docpage.cs", outfile); } else if (outfile.indexOf("resources/") != -1) { hdf.setValue("resources", "true"); ClearPage.write(hdf, "docpage.cs", outfile); } else { ClearPage.write(hdf, "nosidenavpage.cs", outfile); } } } // writePage
protected SCell importCell(Cell poiCell, int row, SSheet sheet) { SCell cell = sheet.getCell(row, poiCell.getColumnIndex()); cell.setCellStyle(importCellStyle(poiCell.getCellStyle())); switch (poiCell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: cell.setNumberValue(poiCell.getNumericCellValue()); break; case Cell.CELL_TYPE_STRING: RichTextString poiRichTextString = poiCell.getRichStringCellValue(); if (poiRichTextString != null && poiRichTextString.numFormattingRuns() > 0) { SRichText richText = cell.setupRichTextValue(); importRichText(poiCell, poiRichTextString, richText); } else { cell.setStringValue(poiCell.getStringCellValue()); } break; case Cell.CELL_TYPE_BOOLEAN: cell.setBooleanValue(poiCell.getBooleanCellValue()); break; case Cell.CELL_TYPE_FORMULA: cell.setFormulaValue(poiCell.getCellFormula()); // ZSS-873 if (isImportCache() && !poiCell.isCalcOnLoad() && !mustCalc(cell)) { ValueEval val = null; switch (poiCell.getCachedFormulaResultType()) { case Cell.CELL_TYPE_NUMERIC: val = new NumberEval(poiCell.getNumericCellValue()); break; case Cell.CELL_TYPE_STRING: RichTextString poiRichTextString0 = poiCell.getRichStringCellValue(); if (poiRichTextString0 != null && poiRichTextString0.numFormattingRuns() > 0) { SRichText richText = new RichTextImpl(); importRichText(poiCell, poiRichTextString0, richText); val = new StringEval(richText.getText()); } else { val = new StringEval(poiCell.getStringCellValue()); } break; case Cell.CELL_TYPE_BOOLEAN: val = BoolEval.valueOf(poiCell.getBooleanCellValue()); break; case Cell.CELL_TYPE_ERROR: val = ErrorEval.valueOf(poiCell.getErrorCellValue()); break; case Cell.CELL_TYPE_BLANK: default: // do nothing } if (val != null) { ((AbstractCellAdv) cell).setFormulaResultValue(val); } } break; case Cell.CELL_TYPE_ERROR: cell.setErrorValue(PoiEnumConversion.toErrorCode(poiCell.getErrorCellValue())); break; case Cell.CELL_TYPE_BLANK: // do nothing because spreadsheet model auto creates blank cells default: // TODO log: leave an unknown cell type as a blank cell. break; } Hyperlink poiHyperlink = poiCell.getHyperlink(); if (poiHyperlink != null) { String addr = poiHyperlink.getAddress(); String label = poiHyperlink.getLabel(); SHyperlink hyperlink = cell.setupHyperlink( PoiEnumConversion.toHyperlinkType(poiHyperlink.getType()), addr == null ? "" : addr, label == null ? "" : label); cell.setHyperlink(hyperlink); } Comment poiComment = poiCell.getCellComment(); if (poiComment != null) { SComment comment = cell.setupComment(); comment.setAuthor(poiComment.getAuthor()); comment.setVisible(poiComment.isVisible()); RichTextString poiRichTextString = poiComment.getString(); if (poiRichTextString != null && poiRichTextString.numFormattingRuns() > 0) { importRichText(poiCell, poiComment.getString(), comment.setupRichText()); } else { comment.setText(poiComment.toString()); } } return cell; }
/** Rebuilds the team statistics. */ public synchronized void validate() { statsValid = false; Iterator<Comment> it = comments.iterator(); Comment item; // clean up the comments list - remove dead matches while (it.hasNext()) { item = it.next(); if (item.getMatch() != null && !matches.containsKey(new SecondTime(item.getMatch().getTime()))) { AppLib.printDebug("Stripping comment from " + getNumber()); it.remove(); } } // init it = comments.iterator(); if (data == null) data = new ArrayList<Integer>(numUDFs); int total = 0, num = 0, udf = 0; int[] totalUDFs = new int[numUDFs]; int[] countUDFs = new int[numUDFs]; while (it.hasNext()) { item = it.next(); // run up rating and UDFs if (item.getRating() > 0.) { num++; total += item.getRating(); } for (int i = 0; i < item.getUDFs().size(); i++) { udf = item.getUDFs().get(i); if (udf != 0) { totalUDFs[i] += udf; countUDFs[i]++; } } } // total and save data.clear(); for (int i = 0; i < countUDFs.length; i++) { if (countUDFs[i] == 0) data.add(0); else data.add((int) Math.round((double) totalUDFs[i] / countUDFs[i])); } if (num == 0) cachedRating = 0; else cachedRating = round1((double) total / num); scores = new ArrayList<Integer>(); // match stats Iterator<ScheduleItem> sit = matches.values().iterator(); ScheduleItem match; List<Score> sc; Score myScore; int index, diff; boolean side; points = teamPoints = enPoints = wins = ties = losses = rp = 0; while (sit.hasNext()) { match = sit.next(); index = match.getTeams().indexOf(getNumber()); // sp, rp, record if (index >= 0 && match.getStatus() == ScheduleItem.COMPLETE && match.counts() && !match.getSurrogate().get(index)) { side = index < ScheduleItem.TPA; // true is red, false is blue diff = match.getBlueScore() - match.getRedScore(); if ((!side && diff > 0) || (side && diff < 0)) wins++; else if (diff == 0) ties++; else losses++; sc = match.getScores(); myScore = null; if (sc != null) { myScore = sc.get(index); points += myScore.totalScore(); // accumulate if (scores.size() < 1) { scores = new ArrayList<Integer>(myScore.size()); for (int i = 0; i < myScore.size(); i++) scores.add(0); } // add it up! for (int i = 0; i < myScore.size() && i < scores.size(); i++) scores.set(i, scores.get(i) + myScore.getScoreAt(i)); } if (side) { teamPoints += match.getRedScore(); enPoints += match.getBlueScore(); } else { teamPoints += match.getBlueScore(); enPoints += match.getRedScore(); } rp += Math.min(match.getBlueScore(), match.getRedScore()); if (myScore != null && ((!side && diff > 0) || (side && diff < 0))) { // penalty points for RP for (int i = 0; i < ScheduleItem.TPA; i++) rp += 10 * sc.get(i + (side ? ScheduleItem.TPA : 0)).getPenaltyCount(); } } } statsValid = true; }
/** * @return * @see models.AbstractPosting#getComments() */ @Transient public List<? extends Comment> getComments() { Collections.sort(comments, Comment.comparator()); return comments; }