/**
  * Verifies the "completeness" of podcast resource sent over the wire
  *
  * @param podcast
  * @return
  */
 private boolean isFullUpdate(Podcast podcast) {
   return podcast.getId() == null
       || podcast.getFeed() == null
       || podcast.getLinkOnPodcastpedia() == null
       || podcast.getTitle() == null
       || podcast.getDescription() == null;
 }
  /** ******************* Create related methods implementation ********************* */
  @Transactional("transactionManager")
  public Long createPodcast(Podcast podcast) throws AppException {

    validateInputForCreation(podcast);

    // verify existence of resource in the db (feed must be unique)
    PodcastEntity podcastByFeed = podcastDao.getPodcastByFeed(podcast.getFeed());
    if (podcastByFeed != null) {
      throw new AppException(
          Response.Status.CONFLICT.getStatusCode(),
          409,
          "Podcast with feed already existing in the database with the id " + podcastByFeed.getId(),
          "Please verify that the feed and title are properly generated",
          AppConstants.BLOG_POST_URL);
    }

    return podcastDao.createPodcast(new PodcastEntity(podcast));
  }
 private void validateInputForCreation(Podcast podcast) throws AppException {
   if (podcast.getFeed() == null) {
     throw new AppException(
         Response.Status.BAD_REQUEST.getStatusCode(),
         400,
         "Provided data not sufficient for insertion",
         "Please verify that the feed is properly generated/set",
         AppConstants.BLOG_POST_URL);
   }
   if (podcast.getTitle() == null) {
     throw new AppException(
         Response.Status.BAD_REQUEST.getStatusCode(),
         400,
         "Provided data not sufficient for insertion",
         "Please verify that the title is properly generated/set",
         AppConstants.BLOG_POST_URL);
   }
   // etc...
 }