From e14473a168b37bf073a22a0b8242f861322d7d2f Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Thu, 4 Feb 2010 13:29:20 +0100 Subject: [PATCH] ItEr46S17CUListadoRecursosTraballadoresItEr08S08: Refactoring MultipleFiltersFinder class name and adding a new class to contain the common filtered methods. --- .../finders/MultipleFiltersFinder.java | 389 +---------------- .../finders/OrdersMultipleFiltersFinder.java | 409 ++++++++++++++++++ .../ResourcesMultipleFiltersFinder.java | 180 ++------ .../navalplanner-webapp-spring-config.xml | 2 +- .../src/main/webapp/orders/_orderFilter.zul | 2 +- 5 files changed, 458 insertions(+), 524 deletions(-) create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrdersMultipleFiltersFinder.java diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/MultipleFiltersFinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/MultipleFiltersFinder.java index d84449c33..155ca3b38 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/MultipleFiltersFinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/MultipleFiltersFinder.java @@ -23,390 +23,45 @@ package org.navalplanner.web.common.components.finders; import static org.navalplanner.web.I18nHelper._; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; import java.util.List; -import java.util.Map; import org.navalplanner.business.common.IAdHocTransactionService; -import org.navalplanner.business.common.IOnTransaction; -import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO; -import org.navalplanner.business.externalcompanies.entities.ExternalCompany; -import org.navalplanner.business.labels.daos.ILabelDAO; -import org.navalplanner.business.labels.daos.ILabelTypeDAO; -import org.navalplanner.business.labels.entities.Label; -import org.navalplanner.business.labels.entities.LabelType; -import org.navalplanner.business.orders.daos.IOrderDAO; -import org.navalplanner.business.orders.entities.Order; -import org.navalplanner.business.orders.entities.OrderStatusEnum; -import org.navalplanner.business.qualityforms.entities.QualityForm; -import org.navalplanner.business.resources.daos.ICriterionDAO; -import org.navalplanner.business.resources.daos.ICriterionTypeDAO; -import org.navalplanner.business.resources.entities.Criterion; -import org.navalplanner.business.resources.entities.CriterionType; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; - -/** - * Implements all the methods needed to search the criterion to filter the - * orders. Provides multiples criterions to filter like {@link Criterion}, - * {@link Label}, {@link OrderStatusEnum},{@link ExternalCompany} object , or - * filter by order code or customer reference. - * @author Susana Montes Pedreira - */ - -public class MultipleFiltersFinder implements IMultipleFiltersFinder { - - @Autowired - private ICriterionTypeDAO criterionTypeDAO; - - @Autowired - private ILabelTypeDAO labelTypeDAO; - - @Autowired - private IExternalCompanyDAO externalCompanyDAO; - - @Autowired - private ICriterionDAO criterionDAO; - - @Autowired - private ILabelDAO labelDAO; - - @Autowired - private IOrderDAO orderDAO; +public abstract class MultipleFiltersFinder implements IMultipleFiltersFinder { @Autowired private IAdHocTransactionService adHocTransactionService; - private static final Map> mapCriterions = new HashMap>(); - - private static final Map> mapLabels = new HashMap>(); - - private static final List externalCompanies = new ArrayList(); - - private static final List customerReferences = new ArrayList(); - - private static OrderStatusEnum[] ordersStatusEnums; - - private static boolean updating = false; - - private static final List ordersCodes = new ArrayList(); - private List listMatching = new ArrayList(); private final String headers[] = { _("Filter type"), _("Filter pattern") }; - protected MultipleFiltersFinder() { - + MultipleFiltersFinder() { } - @Transactional(readOnly = true) - public void init() { - adHocTransactionService - .runOnReadOnlyTransaction(new IOnTransaction() { - @Override - public Void execute() { - loadLabels(); - loadCriterions(); - loadExternalCompanies(); - loadOrdersStatusEnums(); - loadOrderCodesAndCustomerReferences(); - return null; - } - }); + public IAdHocTransactionService getAdHocTransactionService() { + return adHocTransactionService; } - private void loadCriterions() { - mapCriterions.clear(); - List criterionTypes = criterionTypeDAO - .getCriterionTypes(); - for (CriterionType criterionType : criterionTypes) { - List criterions = new ArrayList(criterionDAO - .findByType(criterionType)); - - mapCriterions.put(criterionType, criterions); - } + public void setAdHocTransactionService( + IAdHocTransactionService adHocTransactionService) { + this.adHocTransactionService = adHocTransactionService; } - private void loadLabels() { - mapLabels.clear(); - List labelTypes = labelTypeDAO.getAll(); - for (LabelType labelType : labelTypes) { - List