/** * Get count of unique poll items. * * @param pollItems the source list of poll items * @return count of unique poll items */ private int getUniqueItemsCount(List<PollItem> pollItems) { HashSet<String> uniquePollItemsNames = new HashSet<String>(); for (PollItem pollItem: pollItems) { String pollItemName = pollItem.getName(); uniquePollItemsNames.add(pollItemName); } return uniquePollItemsNames.size(); } }
/** * {@inheritDoc} */ @Override public void mergePollItems(Poll poll, List<PollItem> newItems) { List<PollItem> existing = poll.getPollItems(); ListIterator<PollItem> updated = newItems.listIterator(); while (updated.hasNext()) { PollItem item = updated.next(); for (PollItem old : existing) { if (item.getName().equals(old.getName())) { updated.set(old); } } } existing.clear(); existing.addAll(newItems); }
/** * Validates the name of poll title. * * @param pollItem validated poll item * @return {@code true} if poll item name has correct length, * otherwise {@code false} */ private boolean isPollItemValid(PollItem pollItem) { String pollItemName = pollItem.getName(); Range range = new IntRange(minLength, maxLenght); int pollItemLength = pollItemName.length(); return range.containsInteger(pollItemLength); } }