@Override public int compare(RecordElement o1, RecordElement o2) { int i1 = overrides.indexOf(o1.getExtension().getId()); int i2 = overrides.indexOf(o2.getExtension().getId()); return (i2 == -1 || i1 == -1) ? (i2 - i1) : (i1 - i2); } });
/** * Given a form element and a set of non consented elements, returns true iff {@code element} is enabled, false * otherwise. * * @param element the {@link RecordElement} being examined * @param nonConsentedFields IDs of field that have not received the required consents * @return true iff {@code element} is not part of {@code nonConsentedFields}, false otherwise */ private boolean isElementEnabled(@Nonnull RecordElement element, @Nonnull Set<String> nonConsentedFields) { return !(nonConsentedFields == null) && !nonConsentedFields.contains(element.getExtension().getId()); }
private boolean isElementEnabled(RecordElement element, Set<String> missingFields) { if (missingFields == null) { return true; } if (missingFields.size() == 0 || missingFields.contains(element.getExtension().getId())) { return false; } return true; }
@Override public int compare(RecordElement o1, RecordElement o2) { int i1 = fieldOverrides.indexOf(o1.getExtension().getId()); int i2 = fieldOverrides.indexOf(o2.getExtension().getId()); return (i2 == -1 || i1 == -1) ? (i2 - i1) : (i1 - i2); } });
/** * Given a form element and a set of non consented elements, returns true iff {@code element} is enabled, false * otherwise. * * @param element the {@link RecordElement} being examined * @param nonConsentedFields IDs of field that have not received the required consents * @return true iff {@code element} is not part of {@code nonConsentedFields}, false otherwise */ private boolean isElementEnabled(@Nonnull RecordElement element, @Nonnull Set<String> nonConsentedFields) { return !(nonConsentedFields == null) && !nonConsentedFields.contains(element.getExtension().getId()); }
@Override public List<RecordElement> getAllElements() { List<RecordElement> result = new ArrayList<RecordElement>(); List<RecordElement> allElements = super.getAllElements(); final List<String> overrides = this.configuration.getFieldsOverride(); for (RecordElement element : allElements) { result.add(new ConfiguredRecordElement(this.configuration, element.getExtension(), this)); } if (overrides != null && !overrides.isEmpty()) { Collections.<RecordElement>sort(result, new Comparator<RecordElement>() { @Override public int compare(RecordElement o1, RecordElement o2) { int i1 = overrides.indexOf(o1.getExtension().getId()); int i2 = overrides.indexOf(o2.getExtension().getId()); return (i2 == -1 || i1 == -1) ? (i2 - i1) : (i1 - i2); } }); } return Collections.unmodifiableList(result); } }
/** * Given the {@code section} that needs to be configured, and the {@code fieldOverrides enabled fields}, configures * the {@code section} elements. * * @param section the {@link RecordSection record section} that needs to be configured * @param fieldOverrides the list of identifiers for enabled fields */ private void configureFields(final RecordSection section, final List<String> fieldOverrides) { List<RecordElement> updatedElements = new ArrayList<>(section.getAllElements()); Collections.<RecordElement>sort(updatedElements, new Comparator<RecordElement>() { @Override public int compare(RecordElement o1, RecordElement o2) { int i1 = fieldOverrides.indexOf(o1.getExtension().getId()); int i2 = fieldOverrides.indexOf(o2.getExtension().getId()); return (i2 == -1 || i1 == -1) ? (i2 - i1) : (i1 - i2); } }); for (final RecordElement element : updatedElements) { if (!fieldOverrides.contains(element.getExtension().getId())) { element.setEnabled(false); } } section.setElements(updatedElements); }