public Product setProduct(Product product) {
    Product _product = null;

    // Retreive product
    if (product.getIdProduct() != 0) {
      _product = this.getProduct(product.getIdProduct());
    } else {
      _product =
          this.getProduct(
              product.getProductConf(), product.getSerialNumber(), product.getDatecode());
    }

    // Update product components
    List<Product> _productComponents =
        this.updateProductComponents(this.getProductComponents(product));

    // Update product softwares
    List<Software> _productSoftwares = this.updateProductSoftwares(product.getProductSoftwares());

    // Save product
    _product =
        this.setProduct(
            _product,
            product.getProductConf(),
            product.getSerialNumber(),
            product.getDatecode(),
            _productComponents,
            _productSoftwares);

    return _product;
  }
  public void displayProduct() {
    this.productBeanList = new ArrayList<ProductBean>();
    String modele = null;

    java.util.Date uDate =
        new java.util.Date(
            System
                .currentTimeMillis()); // Relever l'heure avant le debut du progamme (en
                                       // milliseconde)
    System.out.println("Debut de la recherche de la liste des produits");
    List<Product> _productList = this.globalService.getProductsRecordables(modele);
    System.out.println("Fin de la recherche de la liste des produits");
    Date dateFin =
        new Date(
            System.currentTimeMillis()); // Relever l'heure a la fin du progamme (en milliseconde)
    Date duree = new Date(System.currentTimeMillis()); // Pour calculer la différence
    duree.setTime(dateFin.getTime() - uDate.getTime()); // Calcul de la différence
    long secondes = duree.getTime() / 1000;
    long min = secondes / 60;
    long heures = min / 60;
    long mili = duree.getTime() % 1000;
    secondes %= 60;
    System.out.println(
        "Temps passé durant le traitement : \nHeures : "
            + heures
            + "\nMinutes : "
            + min
            + "\nSecondes : "
            + secondes
            + "\nMilisecondes : "
            + mili
            + "\n");

    for (Product p : _productList) {

      ProductBean _productBean = new ProductBean();

      _productBean.setIdProduct(p.getIdProduct()); // JB : cette ligne ne semble pas servir
      _productBean.setSerialNumber(p.getSerialNumber());
      _productBean.setProductConf(p.getFEDDProductConf());
      _productBean.setDatecode(p.getDatecode());
      // _productBean.getProductConf().setReference(p.getProductConf().getReference()); en
      // commentaire par RMO

      this.productBeanList.add(_productBean);
    }
    System.out.println("Fin de la recuperation des informations produits");
    this.result = true;
  }