package no.dusken.aranea.export;
import no.dusken.aranea.export.model.ExportGallery;
import no.dusken.aranea.plugin.galleryplugin.model.Gallery;
import no.dusken.common.dao.GenericDao;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import java.io.IOException;
import java.io.OutputStream;
@Component
public class GalleryExporter extends AbstractExporter{
@Autowired
private GenericDao genericDao;
@Override
public void exportToJson(OutputStream outputStream) throws IOException {
CriteriaBuilder cb = genericDao.getCriteriaBuilder();
CriteriaQuery<Gallery> query = cb.createQuery(Gallery.class);
//Root<Gallery> from = query.from(Gallery.class);
//CriteriaQuery<Gallery> select = query.select(from);
TypedQuery<Gallery> typedQuery = genericDao.getTypedQuery(query);
JsonGenerator jg = jsonFactory.createJsonGenerator(outputStream, JsonEncoding.UTF8);
jg.writeStartArray();
for(Gallery gallery : typedQuery.getResultList()){
jg.writeObject(new ExportGallery(gallery));
}
jg.writeEndArray();
}
@Override
public String getName() {
return "gallery";
}
}