package fi.otavanopisto.muikku.plugins.material.operations; import java.util.List; import javax.inject.Inject; import fi.otavanopisto.muikku.plugins.material.BinaryMaterialController; import fi.otavanopisto.muikku.plugins.material.MaterialController; import fi.otavanopisto.muikku.plugins.material.model.BinaryMaterial; import fi.otavanopisto.muikku.plugins.material.model.MaterialMeta; import fi.otavanopisto.muikku.plugins.material.model.MaterialProducer; public class BinaryMaterialCloneOperation implements MaterialCloneOperation<BinaryMaterial> { @Inject private MaterialController materialController; @Inject private BinaryMaterialController binaryMaterialController; @Override public BinaryMaterial clone(BinaryMaterial material) { BinaryMaterial clonedMaterial = binaryMaterialController.createBinaryMaterial(material.getTitle(), material.getContentType(), material.getContent(), material, material.getLicense(), material.getViewRestrict()); List<MaterialMeta> materialMetas = materialController.listMaterialMetas(material); for (MaterialMeta materialMeta : materialMetas) { materialController.createMaterialMeta(clonedMaterial, materialMeta.getKey(), materialMeta.getValue()); } List<MaterialProducer> materialProducers = materialController.listMaterialProducers(material); for (MaterialProducer materialProducer : materialProducers) { materialController.createMaterialProducer(clonedMaterial, materialProducer.getName()); } return clonedMaterial; } }