package de.unioninvestment.eai.portal.portlet.crud.domain.validation.search; import java.util.List; import de.unioninvestment.eai.portal.portlet.crud.domain.model.Form; import de.unioninvestment.eai.portal.portlet.crud.domain.model.FormAction; import de.unioninvestment.eai.portal.portlet.crud.domain.model.FormActions; import de.unioninvestment.eai.portal.portlet.crud.domain.model.ModelBuilder; // FIXME: JavaDoc für Klasse und Public Methoden // FIXME: Umbenennen der Klasse: SearchFormActionsValidator und dafür ggf. kürzen der Methodennamen (um "Search") public class SearchFormActionsValidator { private ModelBuilder modelBuilder; public SearchFormActionsValidator(ModelBuilder modelBuilder) { this.modelBuilder = modelBuilder; } public void validate() { checkExistenceOfExplicitEmptySearchFilters(); checkExistenceOfTableColumnsReferencedInSearchFilters(); checkExistenceOfFormFieldsReferencedInSearchFilters(); checkFilterCompabilityWithColumnTypes(); } private void checkExistenceOfExplicitEmptySearchFilters() { forEachSearchActionWrapper(new SearchExplicitEmptyFilters(modelBuilder)); } private void checkExistenceOfFormFieldsReferencedInSearchFilters() { forEachSearchActionWrapper(new SearchFilterFieldsContainedInFormFields(modelBuilder)); } private void checkExistenceOfTableColumnsReferencedInSearchFilters() { forEachSearchActionWrapper(new SearchColumnsDefinedInFilters(modelBuilder)); } private void checkFilterCompabilityWithColumnTypes() { forEachSearchActionWrapper(new SearchFilterCompatibleWithColumnTypes()); } private void forEachSearchActionWrapper(SearchActionValidator validator) { List<Form> forms = modelBuilder.getForms(); for (Form aForm : forms) { FormActions actions = aForm.getActions(); FormAction searchActionWrapper = actions.getSearchAction(); if (searchActionWrapper != null) { validator.validateSearchAction(aForm, searchActionWrapper); } } } }