package net.conselldemallorca.helium.core.helper; import java.util.ArrayList; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import net.conselldemallorca.helium.v3.core.api.service.TascaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class TascaSegonPlaHelper { @Autowired private TascaService tascaService; private Map<Long,InfoSegonPla> tasquesSegonPla; public synchronized void loadTasquesSegonPla () { tasquesSegonPla = new LinkedHashMap<Long,InfoSegonPla>(); } public boolean isTasquesSegonPlaLoaded() { return tasquesSegonPla != null; } public synchronized boolean afegirTasca(Long taskInstanceId, Date marcadaFinalitzar, Date iniciFinalitzacio, String error) { if (tasquesSegonPla != null) { tasquesSegonPla.put(taskInstanceId, new InfoSegonPla(marcadaFinalitzar, iniciFinalitzacio, error)); return true; } else { return false; } } public synchronized boolean afegirTasca(Long taskInstanceId, Date marcadaFinalitzar) { if (tasquesSegonPla != null) { tasquesSegonPla.put(taskInstanceId, new InfoSegonPla(marcadaFinalitzar)); return true; } else { return false; } } public synchronized boolean eliminarTasca(Long taskInstanceId) { if (tasquesSegonPla != null) { tasquesSegonPla.remove(taskInstanceId); return true; } else { return false; } } public synchronized void completarTasca(Long taskInstanceId) { if (tasquesSegonPla != null && tasquesSegonPla.containsKey(taskInstanceId)) { InfoSegonPla infoSegonPla = tasquesSegonPla.get(taskInstanceId); infoSegonPla.completada = true; } } public synchronized void setTasquesSegonPla(Map<Long,InfoSegonPla> tasquesSegonPla) { this.tasquesSegonPla = tasquesSegonPla; } public synchronized Map<Long,InfoSegonPla> getTasquesSegonPla() { return this.tasquesSegonPla; } public void carregaTasquesSegonPla() { tascaService.carregaTasquesSegonPla(); } public void completaTascaSegonPla(String tascaId, Date iniciFinalitzacio) { tascaService.completaTascaSegonPla(tascaId, iniciFinalitzacio); } public void guardarErrorFinalitzacio(String tascaId, String errorFinalitzacio) { tascaService.guardarErrorFinalitzacio(tascaId, errorFinalitzacio); } public class InfoSegonPla { private Date marcadaFinalitzar; private Date iniciFinalitzacio; private String error; private boolean completada; private List<String[]> messages; public InfoSegonPla (Date marcadaFinalitzar) { super(); this.messages = new ArrayList<String[]>(); this.marcadaFinalitzar = marcadaFinalitzar; this.completada = false; } public InfoSegonPla (Date marcadaFinalitzar, Date iniciFinalitzacio, String error) { super(); this.messages = new ArrayList<String[]>(); this.marcadaFinalitzar = marcadaFinalitzar; this.iniciFinalitzacio = iniciFinalitzacio; this.error = error; this.completada = false; } public Date getMarcadaFinalitzar() { return marcadaFinalitzar; } public void setMarcadaFinalitzar(Date marcadaFinalitzar) { this.marcadaFinalitzar = marcadaFinalitzar; } public Date getIniciFinalitzacio() { return iniciFinalitzacio; } public void setIniciFinalitzacio(Date iniciFinalitzacio) { this.iniciFinalitzacio = iniciFinalitzacio; } public String getError() { return error; } public void setError(String error) { this.error = error; } public boolean isCompletada() { return completada; } public void setCompletada(boolean completada) { this.completada = completada; } public List<String[]> getMessages() { return messages; } public void setMessages(List<String[]> messages) { this.messages = messages; } public boolean addMessage(String[] message) { return this.messages.add(message); } } }