package fi.otavanopisto.muikku.plugins.workspace.fieldio;
import javax.inject.Inject;
import org.apache.commons.lang3.StringUtils;
import fi.otavanopisto.muikku.plugins.workspace.WorkspaceMaterialFieldAnswerController;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialField;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialOrganizerFieldAnswer;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialReply;
public class WorkspaceOrganizerFieldIOHandler implements WorkspaceFieldIOHandler {
@Inject
private WorkspaceMaterialFieldAnswerController workspaceMaterialFieldAnswerController;
@Override
public void store(WorkspaceMaterialField field, WorkspaceMaterialReply reply, String value) throws WorkspaceFieldIOException {
WorkspaceMaterialOrganizerFieldAnswer fieldAnswer = workspaceMaterialFieldAnswerController.findWorkspaceMaterialOrganizerFieldAnswerByFieldAndReply(field, reply);
if (StringUtils.isNotBlank(value)) {
if (fieldAnswer == null) {
fieldAnswer = workspaceMaterialFieldAnswerController.createWorkspaceMaterialOrganizerFieldAnswer(field, reply, value);
} else {
fieldAnswer = workspaceMaterialFieldAnswerController.updateWorkspaceMaterialOrganizerFieldAnswerValue(fieldAnswer, value);
}
} else {
if (fieldAnswer != null) {
workspaceMaterialFieldAnswerController.updateWorkspaceMaterialOrganizerFieldAnswerValue(fieldAnswer, null);
}
}
}
@Override
public String retrieve(WorkspaceMaterialField field, WorkspaceMaterialReply reply) throws WorkspaceFieldIOException{
WorkspaceMaterialOrganizerFieldAnswer fieldAnswer = workspaceMaterialFieldAnswerController.findWorkspaceMaterialOrganizerFieldAnswerByFieldAndReply(field, reply);
if (fieldAnswer != null) {
return fieldAnswer.getValue();
}
return null;
}
@Override
public String getType() {
return "application/vnd.muikku.field.organizer";
}
}