package fi.otavanopisto.muikku.plugins.material; import javax.enterprise.context.Dependent; import javax.enterprise.event.Event; import javax.inject.Inject; import fi.otavanopisto.muikku.plugins.material.dao.BinaryMaterialDAO; import fi.otavanopisto.muikku.plugins.material.events.BinaryMaterialCreateEvent; import fi.otavanopisto.muikku.plugins.material.events.BinaryMaterialUpdateEvent; import fi.otavanopisto.muikku.plugins.material.model.BinaryMaterial; import fi.otavanopisto.muikku.plugins.material.model.MaterialViewRestrict; @Dependent public class BinaryMaterialController { @Inject private BinaryMaterialDAO binaryMaterialDAO; @Inject private Event<BinaryMaterialCreateEvent> materialCreateEvent; @Inject private Event<BinaryMaterialUpdateEvent> materialUpdateEvent; public BinaryMaterial createBinaryMaterial(String title, String contentType, byte[] content, String license) { return createBinaryMaterial(title, contentType, content, null, license, MaterialViewRestrict.NONE); } public BinaryMaterial createBinaryMaterial(String title, String contentType, byte[] content, BinaryMaterial originMaterial, String license, MaterialViewRestrict viewRestrict) { BinaryMaterial material = binaryMaterialDAO.create(title, contentType, content, originMaterial, license, viewRestrict); materialCreateEvent.fire(new BinaryMaterialCreateEvent(material)); return material; } public BinaryMaterial findBinaryMaterialById(Long id) { return binaryMaterialDAO.findById(id); } public BinaryMaterial updateBinaryMaterialContent(BinaryMaterial binaryMaterial, byte[] content) { BinaryMaterial material = binaryMaterialDAO.updateContent(binaryMaterial, content); materialUpdateEvent.fire(new BinaryMaterialUpdateEvent(material)); return material; } public void deleteBinaryMaterial(BinaryMaterial binaryMaterial) { binaryMaterialDAO.delete(binaryMaterial); } }