/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando Enterprise Edition software.
* You can redistribute it and/or modify it
* under the terms of the Entando's EULA
*
* See the file License for the specific language governing permissions
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpwtt.apsadmin.ticket.common;
import java.util.List;
import java.util.Map;
import com.agiletec.aps.system.ApsSystemUtils;
import com.agiletec.apsadmin.system.BaseAction;
import com.agiletec.plugins.jpwtt.aps.system.services.ticket.ITicketManager;
import com.agiletec.plugins.jpwtt.aps.system.services.ticket.model.InterventionType;
import com.agiletec.plugins.jpwtt.aps.system.services.ticket.model.Ticket;
import com.agiletec.plugins.jpwtt.aps.system.services.ticket.model.TicketOperation;
public abstract class AbstractTicketAction extends BaseAction {
protected abstract boolean isAccessAllowed(Ticket ticket);
public String view() {
try {
String code = this.getCode();
ITicketManager ticketManager = this.getTicketManager();
Ticket ticket = ticketManager.getTicket(code);
if (ticket!=null && this.isAccessAllowed(ticket)) {
this.setTicket(ticket);
List<TicketOperation> ticketOperations = ticketManager.getTicketOperations(code);
this.setTicketOperations(ticketOperations);
} else {
this.addActionError(this.getText("Errors.ticketOperation.ticketNotFound"));
return "ticketNotFound";
}
} catch(Throwable t) {
ApsSystemUtils.logThrowable(t, this, "view");
return FAILURE;
}
return SUCCESS;
}
public Map<Integer, InterventionType> getInterventionTypes() {
return this.getTicketManager().getInterventionTypes();
}
public InterventionType getInterventionType(Integer typeCode) {
return this.getTicketManager().getInterventionType(typeCode);
}
public Map<Integer, String> getPriorities() {
return this.getTicketManager().getPriorities();
}
public String getPriority(int priority) {
return this.getTicketManager().getPriority(priority);
}
public Ticket getTicket() {
return this._ticket;
}
protected void setTicket(Ticket ticket) {
this._ticket = ticket;
}
public List<TicketOperation> getTicketOperations() {
return this._ticketOperations;
}
protected void setTicketOperations(List<TicketOperation> ticketOperations) {
this._ticketOperations = ticketOperations;
}
public String getCode() {
return _code;
}
public void setCode(String code) {
this._code = code;
}
protected ITicketManager getTicketManager() {
return _ticketManager;
}
public void setTicketManager(ITicketManager ticketManager) {
this._ticketManager = ticketManager;
}
private String _code;
private Ticket _ticket;
private List<TicketOperation> _ticketOperations;
private ITicketManager _ticketManager;
}