@Override
  public void deletePackage(String id) throws ProviderException, ObjectNotFoundException {

    LoggingUtil.debug(logger, "deleting package with id:" + id);

    packageRepository.deletePackage(id);

    LoggingUtil.debug(logger, "package deleted:");
  }
  @Override
  public void updatePackage(Package _package) throws ProviderException, ObjectNotFoundException {

    LoggingUtil.debug(logger, "updating package.." + _package.getName());

    packageRepository.updatePackage(_package);

    LoggingUtil.debug(logger, "package updated:");
  }
  @Override
  public void openPackage(String packageId, String userId)
      throws ProviderException, ObjectNotFoundException {

    LoggingUtil.debug(logger, "opening package[" + packageId + "] by user id:" + userId);

    packageRepository.openPackage(packageId, userId);

    LoggingUtil.debug(logger, "package opened:");
  }
  /* (non-Javadoc)
   * @see com.gtc.pfm.service.user.UserService#findUserByName(java.lang.String)
   */
  @Override
  public User findUserByName(String name) throws ProviderException, ObjectNotFoundException {

    LoggingUtil.debug(logger, "finding user by user name:" + name);

    User user = this.userRepository.findUserByName(name);

    LoggingUtil.debug(logger, "found user by user name:" + name);

    return user;
  }
  /* (non-Javadoc)
   * @see com.gtc.pfm.service.user.UserService#findUserById(java.lang.String)
   */
  @Override
  public User findUserById(String id) throws ProviderException, ObjectNotFoundException {

    LoggingUtil.debug(logger, "finding user by id:" + id);

    User user = this.userRepository.findUserById(id);

    LoggingUtil.debug(logger, "found user by id:" + id);

    return user;
  }
  /* (non-Javadoc)
   * @see com.gtc.pfm.service.user.UserService#creaetUser(com.gtc.pfm.domain.User)
   */
  @Override
  public String creaetUser(User user) throws ProviderException, ObjectExistsException {

    LoggingUtil.debug(logger, "creating user:"******"user created with id:" + userId);

    return userId;
  }
  @Override
  public Package findPackageById(String id) throws ProviderException, ObjectNotFoundException {

    LoggingUtil.debug(logger, "finding package by id:" + id);

    Package _package = packageRepository.findPackageById(id);

    LoggingUtil.debug(logger, "package found" + _package.toString());

    return _package;
  }
  @Override
  public String createPackage(Package _package) throws ProviderException, ObjectExistsException {

    LoggingUtil.debug(logger, "creating package.." + _package.getName());

    String packageId = packageRepository.createPackage(_package);

    LoggingUtil.debug(logger, "package created with Id:" + packageId);

    return packageId;
  }
  @Override
  public List<Package> findAllPackages(RowFilter rowFilter) throws ProviderException {

    LoggingUtil.debug(logger, "finding all  packages by row filter:" + rowFilter);

    List<Package> packageList = packageRepository.findAllPackages(rowFilter);

    LoggingUtil.debug(
        logger, "all packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  @Override
  public List<Package> findPackagesByLocation(Location location, RowFilter rowFilter)
      throws ProviderException {

    LoggingUtil.debug(
        logger, "finding packages  by location:" + location + ", row filter:" + rowFilter);

    List<Package> packageList = packageRepository.findPackagesByLocation(location, rowFilter);

    LoggingUtil.debug(logger, " packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  public List<Package> findAllPackagesByStatus(boolean open, RowFilter rowFilter)
      throws ProviderException {

    LoggingUtil.debug(
        logger, "finding all  packages by status(open)[" + open + "] and row filter:" + rowFilter);

    List<Package> packageList = packageRepository.findAllPackagesByStatus(open, rowFilter);

    LoggingUtil.debug(
        logger,
        "all open[" + open + "]packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  @Override
  public List<Package> findOpenPackagesByVenueId(String venueId, RowFilter rowFilter)
      throws ProviderException {

    LoggingUtil.debug(
        logger, "finding open  packages  by venue id:" + venueId + ", row filter:" + rowFilter);

    List<Package> packageList = packageRepository.findOpenPackagesByVenueId(venueId, rowFilter);

    LoggingUtil.debug(
        logger, "open packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  @Override
  public List<Package> findPackagesByVenueIdIdAndPackageStatus(
      String venueId, boolean open, RowFilter rowFilter) throws ProviderException {

    LoggingUtil.debug(
        logger,
        "finding packages  by venue id:"
            + venueId
            + ", package status(open):"
            + open
            + ", row filter:"
            + rowFilter);

    List<Package> packageList =
        packageRepository.findPackagesByVenueIdIdAndPackageStatus(venueId, open, rowFilter);

    LoggingUtil.debug(logger, " packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  @Override
  public List<Package> findAvailablePackagesByUserIdAndLocation(
      String userId, Location location, RowFilter rowFilter) throws ProviderException {

    LoggingUtil.debug(
        logger,
        "finding available packages  by user id:"
            + userId
            + ", location:"
            + location
            + ", row filter:"
            + rowFilter);

    List<Package> packageList =
        packageRepository.findAvailablePackagesByUserIdAndLocation(userId, location, rowFilter);

    LoggingUtil.debug(
        logger, "available packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  @Override
  public List<Package> findOpenPackagesByRecepientIdAndLocation(
      String recipientUserId, Location location, RowFilter rowFilter) throws ProviderException {

    LoggingUtil.debug(
        logger,
        "finding open  packages  by recipient id:"
            + recipientUserId
            + ", location:"
            + location
            + ", row filter:"
            + rowFilter);

    List<Package> packageList =
        packageRepository.findOpenPackagesByRecepientIdAndLocation(
            recipientUserId, location, rowFilter);

    LoggingUtil.debug(
        logger, "open packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }
  @Override
  public List<Package> findPackagesByUserIdAndLocationAndPackageStatus(
      String userId, Location location, boolean open, RowFilter rowFilter)
      throws ProviderException {

    LoggingUtil.debug(
        logger,
        "finding packages  by user id:"
            + userId
            + ", location:"
            + location
            + ", package status(open):"
            + open
            + ", row filter:"
            + rowFilter);

    List<Package> packageList =
        packageRepository.findPackagesByUserIdAndLocationAndPackageStatus(
            userId, location, open, rowFilter);

    LoggingUtil.debug(logger, " packages size:" + (packageList == null ? "0" : packageList.size()));

    return packageList;
  }