dao.OuvrageDao.java Source code

Java tutorial

Introduction

Here is the source code for dao.OuvrageDao.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.Ouvrage;
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 OuvrageDao {

    private static final String TABLE_NAME = "ouvrage";

    private Bucket bucket;
    private CategorieDao categorieDao = new CategorieDao();

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

    public String ajouter(Ouvrage ouvrage) {
        JsonObject ouvrageJson = ObjectToJson(ouvrage);
        JsonDocument ouvrageDocument = JsonDocument.create("ouvrage:" + GenerateUUID.generateUUID(), ouvrageJson);
        JsonDocument response = bucket.upsert(ouvrageDocument);
        return response.id();
    }

    public void modifier(Ouvrage ouvrage) {
        JsonObject ouvrageJson = ObjectToJson(ouvrage);
        JsonDocument ouvrageDocument = JsonDocument.create(ouvrage.getId(), ouvrageJson);
        bucket.replace(ouvrageDocument);
    }

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

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

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

    private JsonObject ObjectToJson(Ouvrage ouvrage) {
        DateTime date = new DateTime(ouvrage.getDatePublication());
        JsonObject ouvrageJson = JsonObject.empty().put("isbn", ouvrage.getIsbn()).put("titre", ouvrage.getTitre())
                .put("auteur", ouvrage.getAuteur()).put("numBL", ouvrage.getNumBL())
                .put("numBC", ouvrage.getNumBC()).put("categorie", ouvrage.getCategorie().getId())
                .put("prix", ouvrage.getPrixUnitaire()).put("librairie", ouvrage.getLibrairie())
                .put("datePublication", date.toLocalDate().toString()).put("edition", ouvrage.getEdition());
        return ouvrageJson;
    }

    private Ouvrage DocToObject(JsonDocument doc) {

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

        Ouvrage ouvrage = new Ouvrage();
        ouvrage.setId(doc.id());
        ouvrage.setIsbn(doc.content().getString("isbn"));
        ouvrage.setTitre(doc.content().getString("titre"));
        ouvrage.setAuteur(doc.content().getString("auteur"));
        ouvrage.setNumBC(doc.content().getString("numBC"));
        ouvrage.setNumBL(doc.content().getString("numBL"));
        ouvrage.setCategorie(categorieDao.findById(doc.content().getString("categorie")));
        ouvrage.setEdition(doc.content().getString("edition"));
        ouvrage.setLibrairie(doc.content().getString("librairie"));
        ouvrage.setPrixUnitaire(doc.content().getDouble("prix"));
        DateTime date = DateTime.parse(doc.content().getString("datePublication"));
        ouvrage.setDatePublication(date.toDate());
        return ouvrage;
    }
}