package ru.codeinside.gses.webui.form; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.vaadin.ui.Form; import ru.codeinside.gses.activiti.forms.Signatures; import ru.codeinside.gses.activiti.forms.api.definitions.PropertyTree; import ru.codeinside.gws.api.ClientRequest; import ru.codeinside.gws.api.Enclosure; import ru.codeinside.gws.api.ExchangeContext; import ru.codeinside.gws.api.ServerResponse; import javax.xml.soap.SOAPMessage; import java.io.Serializable; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Накапливает данные в результат выполнения шагов мастера. Используется пока как черновое решение. */ public class DataAccumulator implements Serializable { private boolean needOv; private String serviceName; private String requestType; private String responseMessage; private String taskId; private ClientRequest clientRequest; private ServerResponse serverResponse; private PropertyTree propertyTree; private List<Form> forms = Lists.newLinkedList(); private Map<Enclosure, String[]> usedEnclosures; private List<TmpAttachment> attachments; private Signatures spSignatures; private Signatures ovSignatures; private Signatures signatures; private SOAPMessage soapMessage; private String virginAppData; private String virginSoapMessage; /** * Хранит временный контекст который формируется для обращения с потребителю */ private ExchangeContext tempContext; public ClientRequest getClientRequest() { return clientRequest; } public void setClientRequest(ClientRequest clientRequest) { this.clientRequest = clientRequest; if (clientRequest != null) { setVirginAppData(clientRequest.appData); } else { setVirginAppData(null); } } public String getTaskId() { return taskId; } public void setTaskId(String taskId) { this.taskId = taskId; } public Signatures getSpSignatures() { return spSignatures; } public void setSpSignatures(Signatures spSignatures) { this.spSignatures = spSignatures; } public Signatures getOvSignatures() { return ovSignatures; } public void setOvSignatures(Signatures ovSignatures) { this.ovSignatures = ovSignatures; } public String getServiceName() { return serviceName; } public void setServiceName(String serviceName) { this.serviceName = serviceName; } public boolean isNeedOv() { return needOv; } public void setNeedOv(boolean needOv) { this.needOv = needOv; } public SOAPMessage getSoapMessage() { return soapMessage; } public void setSoapMessage(SOAPMessage soapMessage) { this.soapMessage = soapMessage; setVirginSoapMessage(soapMessage); } public String getRequestType() { return requestType; } public void setRequestType(String requestType) { this.requestType = requestType; } public ServerResponse getServerResponse() { return serverResponse; } public void setServerResponse(ServerResponse serverResponse) { this.serverResponse = serverResponse; if (serverResponse != null) { setVirginAppData(serverResponse.appData); } else { setVirginAppData(null); } } public PropertyTree getPropertyTree() { return propertyTree; } public void setPropertyTree(PropertyTree propertyTree) { this.propertyTree = propertyTree; } public List<Form> getForms() { return ImmutableList.copyOf(forms); } public void addForm(Form form) { forms.add(form); } public Map<Enclosure, String[]> getUsedEnclosures() { return usedEnclosures; } public void setUsedEnclosures(Map<Enclosure, String[]> usedEnclosures) { this.usedEnclosures = usedEnclosures; } public List<TmpAttachment> getAttachments() { return attachments; } public TmpAttachment getAttachment(String name) { if (name == null || attachments == null) { return null; } for (TmpAttachment attachment : attachments) { if (name.equals(attachment.getId())) { return attachment; } } return null; } public void setAttachment(TmpAttachment attachment) { if (this.attachments == null) { this.attachments = new ArrayList<TmpAttachment>(); attachments.add(attachment); } else { this.attachments.add(attachment); } } public Signatures getSignatures() { return signatures; } public void setSignatures(Signatures signatures) { this.signatures = signatures; } public String getResponseMessage() { return responseMessage; } public void setResponseMessage(String responseMessage) { this.responseMessage = responseMessage; } public void setTempContext(ExchangeContext context) { this.tempContext = context; } public ExchangeContext getTempContext() { return tempContext; } private void setVirginSoapMessage(SOAPMessage soapMessage) { if (soapMessage != null) { this.virginSoapMessage = new String(ProtocolUtils.getBytesFromSoapMessage(soapMessage), Charset.forName("UTF-8")); } else { this.virginSoapMessage = null; } } public String getVirginSoapMessage() { return virginSoapMessage; } private void setVirginAppData(String appData) { this.virginAppData = appData; } public String getVirginAppData() { return virginAppData; } }