package org.ei.drishti.util; import org.ei.drishti.form.domain.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import static java.util.Arrays.asList; public class FormSubmissionBuilder { private String anmId = "anmId"; private String instanceId = "instance id 1"; private String entityId = "entity id 1"; private String formName = "form name 1"; private String bind_type = "entity 1"; private String default_bind_path = "bind path 1"; private String formDataDefinitionVersion = "1"; private SubFormData subFormData = new SubFormData("sub form name", Collections.<Map<String, String>>emptyList()); private List<FormField> fields = new ArrayList<>(); private Long timestamp = 0L; private long serverVersion = 0L; public static FormSubmissionBuilder create() { return new FormSubmissionBuilder(); } public FormSubmission build() { FormInstance formInstance = new FormInstance(new FormData(bind_type, default_bind_path, fields, asList(subFormData))); return new FormSubmission(anmId, instanceId, formName, entityId, timestamp, formDataDefinitionVersion, formInstance, serverVersion); } public FormSubmissionBuilder addFormField(String name, String value) { fields.add(new FormField(name, value, name)); return this; } public FormSubmissionBuilder withTimeStamp(Long timestamp) { this.timestamp = timestamp; return this; } public FormSubmissionBuilder withANMId(String anmId) { this.anmId = anmId; return this; } public FormSubmissionBuilder withInstanceId(String instanceId) { this.instanceId = instanceId; return this; } public FormSubmissionBuilder withEntityId(String entityId) { this.entityId = entityId; addFormField("id", entityId); return this; } public FormSubmissionBuilder withFormName(String formName) { this.formName = formName; return this; } public FormSubmissionBuilder withSubForm(SubFormData subFormData) { this.subFormData = subFormData; return this; } public FormSubmissionBuilder withServerVersion(long serverVersion) { this.serverVersion = serverVersion; return this; } }