Extract workers list as a predefined snapshot
FEA: ItEr60S04ValidacionEProbasFuncionaisItEr59S04
This commit is contained in:
parent
df885861ca
commit
86acf99c74
3 changed files with 31 additions and 26 deletions
|
|
@ -35,8 +35,10 @@ import org.navalplanner.business.labels.entities.Label;
|
|||
import org.navalplanner.business.labels.entities.LabelType;
|
||||
import org.navalplanner.business.resources.daos.ICriterionDAO;
|
||||
import org.navalplanner.business.resources.daos.ICriterionTypeDAO;
|
||||
import org.navalplanner.business.resources.daos.IWorkerDAO;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.CriterionType;
|
||||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
|
@ -68,12 +70,19 @@ public class PredefinedDatabaseSnapshots {
|
|||
return labelsMap.getValue();
|
||||
}
|
||||
|
||||
private IAutoUpdatedSnapshot<List<Worker>> listWorkers;
|
||||
|
||||
public List<Worker> snapshotListWorkers() {
|
||||
return listWorkers.getValue();
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
@SuppressWarnings("unused")
|
||||
private void postConstruct() {
|
||||
criterionsMap = snapshot(calculateCriterionsMap(), CriterionType.class,
|
||||
Criterion.class);
|
||||
labelsMap = snapshot(calculateLabelsMap(), LabelType.class, Label.class);
|
||||
listWorkers = snapshot(calculateWorkers(), Worker.class);
|
||||
}
|
||||
|
||||
private <T> IAutoUpdatedSnapshot<T> snapshot(Callable<T> callable,
|
||||
|
|
@ -132,4 +141,17 @@ public class PredefinedDatabaseSnapshots {
|
|||
};
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private IWorkerDAO workerDAO;
|
||||
|
||||
private Callable<List<Worker>> calculateWorkers() {
|
||||
return new Callable<List<Worker>>() {
|
||||
|
||||
@Override
|
||||
public List<Worker> call() throws Exception {
|
||||
return workerDAO.getAll();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,23 +22,18 @@ package org.navalplanner.web.common.components.finders;
|
|||
|
||||
import static org.navalplanner.web.I18nHelper._;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.resources.daos.IWorkerDAO;
|
||||
import org.navalplanner.business.hibernate.notification.PredefinedDatabaseSnapshots;
|
||||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
public class WorkerMultipleFiltersFinder extends MultipleFiltersFinder {
|
||||
|
||||
@Autowired
|
||||
private IWorkerDAO workerDAO;
|
||||
|
||||
private static final List<Worker> workerList = new ArrayList<Worker>();
|
||||
private PredefinedDatabaseSnapshots databaseSnapshots;
|
||||
|
||||
private IFilterEnum workerFilterEnum = new IFilterEnum() {
|
||||
@Override
|
||||
|
|
@ -47,27 +42,12 @@ public class WorkerMultipleFiltersFinder extends MultipleFiltersFinder {
|
|||
}
|
||||
};
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public void init() {
|
||||
getAdHocTransactionService()
|
||||
.runOnReadOnlyTransaction(new IOnTransaction<Void>() {
|
||||
@Override
|
||||
public Void execute() {
|
||||
loadWorkers();
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
private void loadWorkers() {
|
||||
workerList.clear();
|
||||
workerList.addAll(workerDAO.getAll());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FilterPair> getFirstTenFilters() {
|
||||
Iterator<Worker> iteratorWorker = workerList.iterator();
|
||||
Iterator<Worker> iteratorWorker = getListWorkers().iterator();
|
||||
while(iteratorWorker.hasNext() && getListMatching().size() < 10) {
|
||||
Worker worker = iteratorWorker.next();
|
||||
getListMatching().add(new FilterPair(
|
||||
|
|
@ -77,6 +57,10 @@ public class WorkerMultipleFiltersFinder extends MultipleFiltersFinder {
|
|||
return getListMatching();
|
||||
}
|
||||
|
||||
private List<Worker> getListWorkers() {
|
||||
return databaseSnapshots.snapshotListWorkers();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FilterPair> getMatching(String filter) {
|
||||
getListMatching().clear();
|
||||
|
|
@ -90,7 +74,7 @@ public class WorkerMultipleFiltersFinder extends MultipleFiltersFinder {
|
|||
}
|
||||
private void searchInWorkers(String filter) {
|
||||
boolean limited = (filter.length() < 3);
|
||||
for(Worker worker : workerList) {
|
||||
for (Worker worker : getListWorkers()) {
|
||||
String name = StringUtils.deleteWhitespace(
|
||||
worker.getShortDescription().toLowerCase());
|
||||
if(name.contains(filter)) {
|
||||
|
|
|
|||
|
|
@ -59,8 +59,7 @@
|
|||
<bean id="nonLimitingResourceAllocationMultipleFiltersFinder" class="org.navalplanner.web.common.components.finders.NonLimitingResourceAllocationMultipleFiltersFinder" scope="singleton"
|
||||
init-method="init" />
|
||||
|
||||
<bean id="workerMultipleFiltersFinder" class="org.navalplanner.web.common.components.finders.WorkerMultipleFiltersFinder" scope="singleton"
|
||||
init-method="init" />
|
||||
<bean id="workerMultipleFiltersFinder" class="org.navalplanner.web.common.components.finders.WorkerMultipleFiltersFinder" scope="singleton"/>
|
||||
|
||||
<bean id="criterionMultipleFiltersFinder" class="org.navalplanner.web.common.components.finders.CriterionMultipleFiltersFinder" scope="singleton"
|
||||
init-method="init" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue