package org.org.eclipse.core.utils.platform.filegen.dialogs; import java.util.Collections; import java.util.List; import java.util.Map; import org.org.eclipse.core.utils.platform.dialogs.input.IFieldIdentifier; import org.org.eclipse.core.utils.platform.dialogs.input.IFieldValueHolder; import org.org.eclipse.core.utils.platform.dialogs.input.IFieldsValidator; import org.org.eclipse.core.utils.platform.dialogs.input.IValidationResult; import org.org.eclipse.core.utils.platform.dialogs.input.SimpleFieldIdentifier; import org.org.eclipse.core.utils.platform.dialogs.input.StringBuilderValidationResult; import org.org.eclipse.core.utils.platform.filegen.dialogs.FieldDescriptorsBasedPromptDialog.FieldDescriptor; public abstract class FieldDescriptorsValidator implements IFieldsValidator { private final List<FieldDescriptor> fieldDescriptors; public FieldDescriptorsValidator(List<FieldDescriptor> fieldDescriptors) { this.fieldDescriptors = Collections.unmodifiableList(fieldDescriptors); } @SuppressWarnings("rawtypes") public IValidationResult validate(Map<IFieldIdentifier, IFieldValueHolder> fieldValueHolders) { StringBuilderValidationResult result = new StringBuilderValidationResult(); for (FieldDescriptor fieldDescriptor : fieldDescriptors) { String value = (String) fieldValueHolders.get(new SimpleFieldIdentifier(fieldDescriptor.getFieldId())).getValue(); if (fieldDescriptor.getMandatory() && (value == null || value.trim().equals(""))) { result.append(fieldDescriptor.getFieldLabel() + " is mandatory\n"); } } return additionalValidate(result, fieldValueHolders, fieldDescriptors); } @SuppressWarnings("rawtypes") public abstract IValidationResult additionalValidate(IValidationResult result, Map<IFieldIdentifier, IFieldValueHolder> fieldValueHolders, List<FieldDescriptor> fieldDescriptors); }