public int getFolderUnreadMessagesCount(long folderId) throws SystemException {

    DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Message.class, getClassLoader());

    dynamicQuery.add(RestrictionsFactoryUtil.eq("folderId", folderId));
    dynamicQuery.add(
        RestrictionsFactoryUtil.not(
            RestrictionsFactoryUtil.like("flags", "%" + MailConstants.FLAG_SEEN + ",%")));

    return (int) dynamicQueryCount(dynamicQuery);
  }