dao.PretDao.java Source code

Java tutorial

Introduction

Here is the source code for dao.PretDao.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import bean.Pret;
import com.couchbase.client.java.Bucket;
import com.couchbase.client.java.document.JsonDocument;
import com.couchbase.client.java.document.json.JsonObject;
import com.couchbase.client.java.view.ViewQuery;
import com.couchbase.client.java.view.ViewResult;
import com.couchbase.client.java.view.ViewRow;
import java.util.ArrayList;
import java.util.List;
import org.joda.time.DateTime;
import util.GenerateUUID;

/**
 *
 * @author Khalid
 */
public class PretDao {

    private static final String TABLE_NAME = "pret";

    private Bucket bucket;
    private OuvrageDao ouvrageDao = new OuvrageDao();
    private EtudiantDao etudiantDao = new EtudiantDao();
    private ProfesseurDao professeurDao = new ProfesseurDao();

    public PretDao() {
        bucket = ConnectDB.getBucket();
    }

    public String ajouter(Pret pret) {
        JsonObject pretJson = ObjectToJson(pret);
        JsonDocument pretDocument = JsonDocument.create("pret:" + GenerateUUID.generateUUID(), pretJson);
        JsonDocument response = bucket.upsert(pretDocument);
        return response.id();
    }

    public void modifier(Pret pret) {
        JsonObject pretJson = ObjectToJson(pret);
        JsonDocument pretDocument = JsonDocument.create(pret.getId(), pretJson);
        bucket.replace(pretDocument);
    }

    public void supprimer(String id) {
        JsonDocument doc = bucket.get(id);
        bucket.async().remove(id);
        //bucket.remove(id);
    }

    public Pret findById(String id) {
        JsonDocument doc = bucket.get(id);
        return DocToObject(doc);
    }

    public List<Pret> findAll() {
        List<Pret> prets = new ArrayList<>();
        ViewResult results = bucket.query(ViewQuery.from("pret", "all"));
        for (ViewRow row : results) {
            Pret pret = DocToObject(row.document());
            if (pret != null) {
                prets.add(pret);
            }
        }
        return prets;
    }

    private JsonObject ObjectToJson(Pret pret) {
        DateTime datePret = new DateTime(pret.getDatePret());
        DateTime dateRetour = new DateTime(pret.getDateRetour());

        JsonObject pretJson = JsonObject.empty()

                .put("idOuvrage", pret.getOuvrage().getId()).put("idEtudiant", pret.getEtudiant().getId())
                .put("idProfesseur", pret.getProfesseur().getId())
                .put("dateRetour", dateRetour.toLocalDate().toString())
                .put("datePret", datePret.toLocalDate().toString());
        return pretJson;
    }

    private Pret DocToObject(JsonDocument doc) {

        if (doc == null)
            return null; // Doc supprimer

        Pret pret = new Pret();
        pret.setId(doc.id());
        pret.setOuvrage(ouvrageDao.findById(doc.content().getString("idOuvrage")));
        pret.setEtudiant(etudiantDao.findById(doc.content().getString("idEtudiant")));
        pret.setProfesseur(professeurDao.findById(doc.content().getString("idProfesseur")));

        DateTime datePret = DateTime.parse(doc.content().getString("datePret"));
        pret.setDatePret(datePret.toDate());

        DateTime dateRetour = DateTime.parse(doc.content().getString("dateRetour"));
        pret.setDateRetour(datePret.toDate());

        return pret;
    }
}