public void setDatabaseId(ResourceId rootId) { formClass.setDatabaseId(rootId); }
public FormClass setDatabaseId(int databaseId) { return setDatabaseId(CuidAdapter.databaseId(databaseId)); }
public void setDatabaseId(int databaseId) { this.formClass.setDatabaseId(CuidAdapter.databaseId(databaseId)); }
private FormClass getFormClass(SourceRow row) { String name = formName.get(row); FormClass formClass = formMap.get(name); if (formClass == null) { formClass = new FormClass(CuidAdapter.activityFormClass(keyGenerator.generateInt())); formClass.setDatabaseId(databaseId); formClass.setLabel(name); formMap.put(name, formClass); } return formClass; }
public FormClass registerNewSubform(ResourceId formFieldId, SubFormKind subFormKind) { final FormClass formClass = new FormClass(ResourceId.generateId()); formClass.setDatabaseId(rootFormClass.getDatabaseId()); formClass.setSubFormKind(subFormKind); registerSubform(formFieldId, formClass); return formClass; }
private FormClass getSubFormClass(FormClass masterForm, SourceRow row) { String subFormName = subForm.get(row); if(subFormName == null) { return masterForm; } FormClass subFormClass = subFormMap.get(subFormName); if(subFormClass == null) { subFormClass = new FormClass(ResourceId.generateId()); subFormClass.setSubFormKind(parseSubFormKind(subFormType.get(row))); subFormClass.setParentFormId(masterForm.getId()); subFormClass.setLabel(subFormName); subFormClass.setDatabaseId(databaseId); subFormMap.put(subFormName, subFormClass); FormField subFormField = new FormField(ResourceId.generateFieldId(SubFormReferenceType.TYPE_CLASS)); subFormField.setLabel(subFormName); subFormField.setType(new SubFormReferenceType(subFormClass.getId())); subFormField.setVisible(true); masterForm.addElement(subFormField); } return subFormClass; }
public SimpleReferenceForm(Ids ids, TestForm referencedForm) { this.referencedForm = referencedForm; formClass = new FormClass(FORM_ID); formClass.setLabel("Simple Reference Form"); formClass.setDatabaseId(ids.databaseId()); refField = formClass.addField(REF_FIELD_ID) .setCode("REF") .setLabel("Reference Field") .setType(new ReferenceType(Cardinality.SINGLE, referencedForm.getFormId())) .setRequired(true) .setVisible(true); generator = new RecordGenerator(formClass) .distribution(REF_FIELD_ID, new RefGenerator(referencedForm)); }
public static ActivityTableMappingBuilder reportingPeriod(Activity activity) { ActivityTableMappingBuilder mapping = new ActivityTableMappingBuilder(); mapping.activity = activity; mapping.baseTable = "reportingperiod"; mapping.baseFromClause = "reportingperiod base"; mapping.baseFilter = "base.deleted=0 AND base.activityId=" + activity.getId(); mapping.classId = CuidAdapter.reportingPeriodFormClass(activity.getId()); mapping.formClass = new FormClass(mapping.classId); mapping.formClass.setLabel(activity.getName() + " Monthly Reports"); mapping.formClass.setDatabaseId(activity.getDatabaseId()); mapping.primaryKeyMapping = new PrimaryKeyMapping(CuidAdapter.MONTHLY_REPORT, "reportingPeriodId"); mapping.addSiteField(); mapping.addDateFields(); for (ActivityField indicatorField : activity.getIndicatorFields()) { mapping.addIndicatorOrAttributeField(indicatorField); } sortFormClassFields(mapping.formClass, activity.getFieldsOrder()); return mapping; }
public LocaliteForm(Ids ids, int count, AdminLevelForm... adminLevels) { formClass = new FormClass(ids.formId("LOCALITE")); this.adminLevels = Arrays.asList(adminLevels); formClass.setLabel("Village"); formClass.setDatabaseId(ids.databaseId()); for (FormField field : ids.builtinFields()) { formClass.addElement(field); } List<ResourceId> adminLevelIds = new ArrayList<>(); for (AdminLevelForm adminLevel : adminLevels) { adminLevelIds.add(adminLevel.getFormId()); } nameField = formClass.addField(ids.fieldId("F1")) .setCode("NAME") .setLabel("Name") .setType(TextType.SIMPLE) .setRequired(true) .setKey(true) .setVisible(true); adminField = formClass.addField(ids.fieldId("ADMIN")) .setLabel("Admin Level") .setType(new ReferenceType(Cardinality.SINGLE, adminLevelIds)) .setRequired(true) .setKey(true) .setVisible(true); recordGenerator = new RecordGenerator(formClass); recordGenerator.distribution(nameField.getId(), new UniqueNameGenerator("Village")); recordGenerator.distribution(adminField.getId(), new RefGenerator(adminLevels)); records = new LazyRecordList(recordGenerator, count); }
@Ignore @Test public void doNotPersistFormClassWithStaleSubformReference() { setupForms(); FormClass formClass = new FormClass(ResourceId.generateId()); formClass.setDatabaseId(DATABASE_ID); FormClass subform = new FormClass(ResourceId.generateId()); subform.setDatabaseId(DATABASE_ID); FormField subformOwnerField = formClass.addField(CuidAdapter.generateIndicatorId()); subformOwnerField.setType(new SubFormReferenceType(subform.getId())); locator.persist(formClass).then(new AsyncCallback<Void>() { @Override public void onFailure(Throwable caught) { // expected result } @Override public void onSuccess(Void result) { throw new RuntimeException("FormClass is persisted with stale (non-existent) SubFormClass reference."); } }); }
public LocationSelectionForm(Ids ids, LocaliteForm localiteForm) { formClass = new FormClass(ids.formId("LOC")); formClass.setLabel("Location Selection"); formClass.setDatabaseId(ids.databaseId()); for (FormField field : ids.builtinFields()) { formClass.addElement(field); } localiteField = formClass.addField(ids.fieldId("LOCATION")) .setLabel("Localite") .setType(new ReferenceType(Cardinality.SINGLE, localiteForm.getFormId())) .setRequired(true) .setVisible(true); recordGenerator = new RecordGenerator(formClass) .distribution(localiteField.getId(), new RefGenerator(localiteForm)); records = new LazyRecordList(recordGenerator, 821); }
@Test public void createForm() { KeyGenerator generator = new KeyGenerator(); int activityId = generator.generateInt(); FormClass formClass = new FormClass(CuidAdapter.activityFormClass(activityId)); formClass.setDatabaseId(1); formClass.setLabel("New Form"); formClass.addElement(new FormField(CuidAdapter.generateIndicatorId()) .setType(TextType.SIMPLE) .setLabel("Name") .setRequired(true)); catalog.createOrUpdateFormSchema(formClass); System.out.println("Created activity " + activityId); // FormClass reform = catalog.getFormClass(formClass.getId()); // // // Ensure that partner field is automatically added // FormField partnerField = reform.getField(CuidAdapter.partnerField(activityId)); // // assertThat(partnerField.getType(), instanceOf(ReferenceType.class)); }
public ClinicSubForm(Ids ids, TestForm parentForm, int recordCount) { formClass = new FormClass(ids.formId("CLINIC_MONTHLY")); formClass.setParentFormId(parentForm.getFormId()); formClass.setSubFormKind(SubFormKind.MONTHLY); formClass.setDatabaseId(ids.databaseId()); formClass.setLabel("Monthly statistics"); consultsField = new FormField(ids.fieldId("F1")); consultsField.setLabel("Number of consultations"); consultsField.setCode("NUM_CONSULT"); consultsField.setRequired(true); consultsField.setType(new QuantityType("patients")); formClass.addElement(consultsField); generator = new RecordGenerator(formClass); generator.parentForm(parentForm); generator.distribution(consultsField.getId(), new IntegerGenerator(50, 250, 0.0)); records = new LazyRecordList(generator, recordCount); }
private FormClass setupFormWithSubformAttachmentField() { int databaseId = 1; FormClass testForm = new FormClass(ResourceId.valueOf("TEST_FORM")); testForm.setLabel("Test Form with Sub-Form"); testForm.setDatabaseId(databaseId); FormClass testSubForm = new FormClass(ResourceId.generateId()); testSubForm.setLabel("Test Sub-Form"); testSubForm.setDatabaseId(databaseId); testSubForm.setSubFormKind(SubFormKind.REPEATING); testSubForm.setParentFormId(testForm.getId()); testForm.addElement(new FormField(ResourceId.valueOf("SF")) .setLabel("Sub-Form") .setType(new SubFormReferenceType(testSubForm.getId()))); assertResolves(locator.persist(testSubForm)); assertResolves(locator.persist(testForm)); ResourceId attachmentFieldId = ResourceId.generateFieldId(AttachmentType.TYPE_CLASS); return addAttachmentField(testSubForm.getId(), attachmentFieldId); }
public MultipleTextKeysForm(Ids ids) { formClass = new FormClass(FORM_ID); formClass.setLabel("Multiple Text Key Fields Form"); formClass.setDatabaseId(ids.databaseId()); firstTextKey = formClass.addField(FIRST_TEXT_KEY_ID) .setCode("ONE") .setLabel("First Text Key") .setType(TextType.SIMPLE) .setRequired(true) .setVisible(true) .setKey(true); secondTextKey = formClass.addField(SECOND_TEXT_KEY_ID) .setCode("TWO") .setLabel("Second Text Key") .setType(TextType.SIMPLE) .setRequired(true) .setVisible(true) .setKey(true); generator = new RecordGenerator(formClass) .distribution(FIRST_TEXT_KEY_ID, new DiscreteTextGenerator(0.0, NAMES)) .distribution(SECOND_TEXT_KEY_ID, new DiscreteTextGenerator(0.0, TYPES)); }
public NfiForm(Ids ids, VillageForm villageForm) { formClass = new FormClass(ids.formId("NFI")); formClass.setLabel("NFI Distribution"); formClass.setDatabaseId(ids.databaseId()); for (FormField field : ids.builtinFields()) { formClass.addElement(field); } dateField = formClass.addField(ids.fieldId("F1")) .setLabel("Date of distribution") .setType(LocalDateType.INSTANCE) .setRequired(true) .setVisible(true); villageField = formClass.addField(ids.fieldId("F2")) .setLabel("Village") .setType(new ReferenceType(Cardinality.SINGLE, villageForm.getFormId())) .setRequired(true) .setVisible(true); recordGenerator = new RecordGenerator(formClass) .distribution(villageField.getId(), new RefGenerator(villageForm)); records = new LazyRecordList(recordGenerator, 821); }
public ClinicForm(Ids ids) { ResourceId formId = ids.formId("CLINIC"); formClass = new FormClass(formId); formClass.setLabel("Health Clinic Support"); formClass.setDatabaseId(ids.databaseId()); for (FormField field : ids.builtinFields()) { formClass.addElement(field); } subForm = new ClinicSubForm(ids, this, RECORD_COUNT * 25); nameField = formClass.addField(ids.fieldId("F1")) .setLabel("Name of Clinic") .setType(TextType.SIMPLE) .setRequired(true) .setVisible(true); subFormField = formClass.addField(ids.fieldId("F2")) .setLabel("Monthly Reports") .setType(new SubFormReferenceType(subForm.getFormId())) .setVisible(true); generator = new RecordGenerator(ids, formClass); generator.distribution(nameField.getId(), new UniqueNameGenerator("Centre de Santé")); records = new LazyRecordList(generator, 100); }
masterFormClass.setDatabaseId(CuidAdapter.databaseId(1)); subFormClass.setDatabaseId(masterFormClass.getDatabaseId()); subFormClass.setParentFormId(masterFormId); subFormClass.setSubFormKind(SubFormKind.MONTHLY);
this.parentForm = parentForm; formClass.setLabel("Village"); formClass.setDatabaseId(ids.databaseId());
@Test public void simpleTest() { ApplicationDriver driver = harness.newUser(); TestDatabase database = driver.createDatabase(); ActivityInfoClient client = driver.getClient(); FormClass formClass = new FormClass(harness.newFormId()); formClass.setLabel("Test Form"); formClass.setDatabaseId(database.getId()); FormField partnerField = CuidAdapter.partnerField(formClass); formClass.addElement(partnerField); FormField fileNumberField = formClass.addField(harness.newFieldId()) .setType(new SerialNumberType()) .setLabel("Record Number"); FormField nameField = formClass.addField(harness.newFieldId()) .setType(TextType.SIMPLE) .setLabel("Name"); client.createForm(formClass); TypedFormRecord record1 = new TypedFormRecord(harness.newRecordId(), formClass.getId()); record1.set(nameField.getId(), "Sue"); record1.set(partnerField.getId(), database.getDefaultPartner()); TypedFormRecord record2 = new TypedFormRecord(harness.newRecordId(), formClass.getId()); record2.set(nameField.getId(), "Bob"); record2.set(partnerField.getId(), database.getDefaultPartner()); client.createRecord(record1); client.createRecord(record2); record1 = client.getTypedRecord(formClass, record1.getId()); record2 = client.getTypedRecord(formClass, record2.getId()); assertThat(record1.get(fileNumberField.getId()), equalTo((FieldValue) new SerialNumber(1))); assertThat(record2.get(fileNumberField.getId()), equalTo((FieldValue) new SerialNumber(2))); }