@Override public TypedFormRecord apply(FormRecord record) { return TypedFormRecord.toTypedFormRecord(form.getFormClass(), record); } });
public SubFormNode(RecordRef parentRef, ResourceId formId, List<FormRecord> records) { this.parentKey = new RecordTree.ParentKey(parentRef, formId); formClass = formTree.getFormClass(formId); this.records = records .stream() .map(record -> TypedFormRecord.toTypedFormRecord(formClass, record)) .collect(Collectors.toList()); }
@Nullable @Override public TypedFormRecord apply(@Nullable Void input) { return TypedFormRecord.toTypedFormRecord(formClass.get(), record.get()); } });
@Nullable @Override public List<TypedFormRecord> apply(@Nullable Void aVoid) { List<TypedFormRecord> instances = Lists.newArrayList(); for (FormRecord record : records.get().getRecords()) { instances.add(TypedFormRecord.toTypedFormRecord(subFormClass.get(), record)); } return instances; } });
public TypedFormRecord getTypedRecord(FormClass formClass, ResourceId recordId) { FormRecord record = getRecord(formClass.getId(), recordId); TypedFormRecord instance = TypedFormRecord.toTypedFormRecord(formClass, record); return instance; }
@VisibleForTesting TypedFormRecord computeEffectiveRecord(FormClass formClass, Optional<FormRecord> existingRecord, TypedRecordUpdate update) { TypedFormRecord record = new TypedFormRecord(update.getRecordId(), formClass.getId()); if(existingRecord.isPresent()) { TypedFormRecord existingTypedRecord = TypedFormRecord.toTypedFormRecord(formClass, existingRecord.get()); record.setAll(existingTypedRecord.getFieldValueMap()); } for (Map.Entry<ResourceId, FieldValue> entry : update.getChangedFieldValues().entrySet()) { record.set(entry.getKey(), entry.getValue()); } return record; }
public RecordNode(RecordRef ref, Maybe<FormRecord> record) { this.ref = ref; this.formClass = formTree.getFormClass(ref.getFormId()); this.record = record.transform(r -> TypedFormRecord.toTypedFormRecord(formClass, r)); }
private static Optional<SelectionViewModel> computeSelection(FormTree formTree, Maybe<FormRecord> record) { if(!record.isVisible()) { return Optional.absent(); } FormMetadata form = formTree.getFormMetadata(ResourceId.valueOf(record.get().getFormId())); if(!form.isVisible()) { return Optional.absent(); } TypedFormRecord typedRecord = TypedFormRecord.toTypedFormRecord(form.getSchema(), record.get()); boolean editAllowed = evalPermission(form, typedRecord, Operation.EDIT_RECORD); boolean deleteAllowed = evalPermission(form, typedRecord, Operation.DELETE_RECORD); return Optional.of(new SelectionViewModel(typedRecord, editAllowed, deleteAllowed)); }
public static boolean can(TypedFormRecord record, FormPermissions formPermissions, FormClass formClass, Operation operation) { if (!formPermissions.isAllowed(operation)) { return false; } if (!formPermissions.isFiltered(operation)) { return true; } FormulaNode filter = parseFilter(formPermissions.getFilter(operation)); return evalFilter(record, formClass, filter); }
TypedFormRecord typedFormRecord = TypedFormRecord.toTypedFormRecord(getFormClass(), formRecord);
@Test public void singleSiteWithBoundLocation() { FormStorage siteStorage = catalog.getForm(CuidAdapter.activityFormClass(4)).get(); FormRecord siteRecord = siteStorage.get(CuidAdapter.cuid(CuidAdapter.SITE_DOMAIN, 6)).get(); TypedFormRecord site = TypedFormRecord.toTypedFormRecord(siteStorage.getFormClass(), siteRecord); FieldValue location = site.get(CuidAdapter.locationField(4)); }
@Test public void singleSite() { FormStorage siteStorage = catalog.getForm(CuidAdapter.activityFormClass(1)).get(); FormRecord siteRecord = siteStorage.get(CuidAdapter.cuid(CuidAdapter.SITE_DOMAIN, 1)).get(); TypedFormRecord site = TypedFormRecord.toTypedFormRecord(siteStorage.getFormClass(), siteRecord); EnumValue cause = (EnumValue) site.get(CuidAdapter.attributeGroupField(1)); EnumValue kitContents = (EnumValue) site.get(CuidAdapter.attributeGroupField(2)); assertThat(cause, nullValue()); assertThat(kitContents.getResourceIds(), contains( CuidAdapter.attributeId(3), CuidAdapter.attributeField(4))); }
@Test public void updateLocation() throws SQLException { ResourceId recordId = CuidAdapter.cuid(LOCATION_DOMAIN, 1); ResourceId formId = CuidAdapter.locationFormClass(1); RecordUpdate update = new RecordUpdate(); update.setFormId(formId); update.setRecordId(recordId); update.setFieldValue(CuidAdapter.field(formId, CuidAdapter.NAME_FIELD), TextValue.valueOf("New Name")); Updater updater = updater(); updater.executeChange(update); newRequest(); FormStorage formStorage = catalog.getForm(formId).get(); FormRecord record = formStorage.get(recordId).get(); TypedFormRecord typedRecord = TypedFormRecord.toTypedFormRecord(formStorage.getFormClass(), record); GeoPoint point = (GeoPoint) typedRecord.get(CuidAdapter.field(formId, CuidAdapter.GEOMETRY_FIELD)); assertThat(point, not(nullValue())); } }
TypedFormRecord created = TypedFormRecord.toTypedFormRecord(formClass, catalog.getForm(formClass.getId()).get().get(siteId).get()); TypedFormRecord updated = TypedFormRecord.toTypedFormRecord(formClass, catalog.getForm(formClass.getId()).get().get(siteId).get());
TypedFormRecord savedInstance = TypedFormRecord.toTypedFormRecord(formClass, saved);