/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.domain.beans; import java.io.Serializable; import org.esupportail.commons.utils.strings.StringUtils; import org.esupportail.helpdesk.domain.DomainService; import org.esupportail.helpdesk.domain.TicketScope; /** * The abstract class that represents ticket containers (departments and categories). */ @SuppressWarnings("serial") public abstract class AbstractTicketContainer implements Serializable, TicketContainer { /** * The unique id. */ private long id; /** * The label. */ private String label; /** * The long label. */ private String xlabel; /** * The number of days before a ticket is automatically approved when closed * (no approbation when 0, inherit when null). */ private Integer autoExpire; /** * the default scope for the tickets of the container (inherit when null). */ private String defaultTicketScope; /** * the default label for the tickets of the container (inherit when null). */ private String defaultTicketLabel; /** * the default message for the tickets of the container (inherit when null). */ private String defaultTicketMessage; /** * the default priority for the tickets of the container (inherit when null). */ private int defaultTicketPriority; /** * The order of this container. */ private Integer order; /** * the URL of the department. */ private String url; /** * The effective scope for the new tickets. */ private String effectiveDefaultTicketScope; /** * The name of the default assignment algorithm. */ private String assignmentAlgorithmName; /** * True to hide to application users. */ private Boolean hideToExternalUsers; /** * True to inherit email monitoring properties. */ private Boolean inheritMonitoring; /** * The email address to send an email. */ private String monitoringEmail; /** * True to send email to local users. */ private Boolean monitoringLocalEmails; /** * The auth type for sent emails. */ private String monitoringEmailAuthType; /** * The monitoring level. */ private Integer monitoringLevel; /** * The icon. */ private Icon icon; /** * Bean constructor. */ public AbstractTicketContainer() { super(); this.defaultTicketScope = TicketScope.DEFAULT; this.defaultTicketPriority = DomainService.DEFAULT_PRIORITY_VALUE; this.hideToExternalUsers = Boolean.FALSE; this.inheritMonitoring = Boolean.TRUE; this.monitoringEmail = null; this.monitoringLocalEmails = Boolean.TRUE; this.monitoringEmailAuthType = null; this.monitoringLevel = MONITORING_NEVER; this.icon = null; } /** * Copy. * @param container the container to copy */ public AbstractTicketContainer(final AbstractTicketContainer container) { super(); this.id = container.id; this.label = container.label; this.xlabel = container.xlabel; this.autoExpire = container.autoExpire; this.defaultTicketScope = container.defaultTicketScope; this.effectiveDefaultTicketScope = container.effectiveDefaultTicketScope; this.defaultTicketLabel = container.defaultTicketLabel; this.defaultTicketMessage = container.defaultTicketMessage; this.defaultTicketPriority = container.defaultTicketPriority; this.assignmentAlgorithmName = container.assignmentAlgorithmName; this.order = container.order; this.url = container.url; this.hideToExternalUsers = container.hideToExternalUsers; this.inheritMonitoring = container.inheritMonitoring; this.monitoringEmail = container.monitoringEmail; this.monitoringLevel = container.monitoringLevel; this.monitoringLocalEmails = container.monitoringLocalEmails; this.monitoringEmailAuthType = container.monitoringEmailAuthType; this.icon = container.icon; } /** * @return a String. * @see java.lang.Object#toString() */ protected String toStringInternal() { return "id=[" + id + "]" + ", label=[" + label + "]" + ", xlabel=[" + xlabel + "]" + ", order=[" + order + "]" + ", autoExpire=[" + autoExpire + "]" + ", defaultTicketScope=[" + defaultTicketScope + "]" + ", defaultTicketLabel=[" + defaultTicketLabel + "]" + ", defaultTicketMessage=[" + defaultTicketMessage + "]" + ", defaultTicketPriority=[" + defaultTicketPriority + "]" + ", url=[" + url + "]"; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getId() */ @Override public long getId() { return id; } /** * @param id The id to set. */ public void setId(final long id) { this.id = id; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getLabel() */ @Override public String getLabel() { return label; } /** * @param label The label to set. */ public void setLabel(final String label) { this.label = StringUtils.nullIfEmpty(label); } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getXlabel() */ @Override public String getXlabel() { return xlabel; } /** * @param xlabel the xlabel to set */ public void setXlabel(final String xlabel) { this.xlabel = StringUtils.nullIfEmpty(xlabel); } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getAutoExpire() */ @Override public Integer getAutoExpire() { return autoExpire; } /** * @param autoExpire the autoExpire to set */ public void setAutoExpire(final Integer autoExpire) { this.autoExpire = autoExpire; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getDefaultTicketScope() */ @Override public String getDefaultTicketScope() { return defaultTicketScope; } /** * @param defaultTicketScope the defaultTicketScope to set */ public void setDefaultTicketScope(final String defaultTicketScope) { this.defaultTicketScope = defaultTicketScope; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getOrder() */ @Override public Integer getOrder() { return order; } /** * @param order the order to set */ public void setOrder(final Integer order) { this.order = order; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getDefaultTicketLabel() */ @Override public String getDefaultTicketLabel() { return defaultTicketLabel; } /** * @param defaultTicketLabel the defaultTicketLabel to set */ public void setDefaultTicketLabel(final String defaultTicketLabel) { this.defaultTicketLabel = StringUtils.nullIfEmpty(defaultTicketLabel); } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getDefaultTicketMessage() */ @Override public String getDefaultTicketMessage() { return defaultTicketMessage; } /** * @param defaultTicketMessage the defaultTicketMessage to set */ public void setDefaultTicketMessage(final String defaultTicketMessage) { this.defaultTicketMessage = StringUtils.filterFckInput(defaultTicketMessage); } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getDefaultTicketPriority() */ @Override public int getDefaultTicketPriority() { return defaultTicketPriority; } /** * @param defaultTicketPriority the defaultTicketPriority to set */ public void setDefaultTicketPriority(final int defaultTicketPriority) { this.defaultTicketPriority = defaultTicketPriority; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getUrl() */ @Override public String getUrl() { return url; } /** * @param url the url to set */ public void setUrl(final String url) { this.url = url; } /** * @param effectiveDefaultTicketScope the effectiveDefaultTicketScope to set */ public void setEffectiveDefaultTicketScope(final String effectiveDefaultTicketScope) { this.effectiveDefaultTicketScope = effectiveDefaultTicketScope; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getEffectiveDefaultTicketScope() */ @Override public String getEffectiveDefaultTicketScope() { return effectiveDefaultTicketScope; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getAssignmentAlgorithmName() */ @Override public String getAssignmentAlgorithmName() { return assignmentAlgorithmName; } /** * @param assignmentAlgorithmName the assignmentAlgorithmName to set */ public void setAssignmentAlgorithmName( final String assignmentAlgorithmName) { this.assignmentAlgorithmName = StringUtils.nullIfEmpty(assignmentAlgorithmName); } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getHideToExternalUsers() */ @Override public Boolean getHideToExternalUsers() { if (hideToExternalUsers == null) { return false; } return hideToExternalUsers; } /** * @param hideToExternalUsers the hideToExternalUsers to set */ public void setHideToExternalUsers(final Boolean hideToExternalUsers) { this.hideToExternalUsers = hideToExternalUsers; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getInheritMonitoring() */ @Override public Boolean getInheritMonitoring() { if (inheritMonitoring == null) { return true; } return inheritMonitoring; } /** * @param inheritMonitoring the inheritMonitoring to set */ public void setInheritMonitoring(final Boolean inheritMonitoring) { this.inheritMonitoring = inheritMonitoring; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getMonitoringEmail() */ @Override public String getMonitoringEmail() { return monitoringEmail; } /** * @param monitoringEmail the monitoringEmail to set */ public void setMonitoringEmail(final String monitoringEmail) { this.monitoringEmail = StringUtils.nullIfEmpty(monitoringEmail); } /** * @return the monitoringLocalEmails */ @Deprecated public Boolean getMonitoringLocalEmails() { if (monitoringLocalEmails == null) { return true; } return monitoringLocalEmails; } /** * @param monitoringLocalEmails the monitoringLocalEmails to set */ @Deprecated public void setMonitoringLocalEmails(final Boolean monitoringLocalEmails) { this.monitoringLocalEmails = monitoringLocalEmails; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getMonitoringEmailAuthType() */ @Override public String getMonitoringEmailAuthType() { return monitoringEmailAuthType; } /** * @param monitoringEmailAuthType the monitoringEmailAuthType to set */ public void setMonitoringEmailAuthType(final String monitoringEmailAuthType) { this.monitoringEmailAuthType = monitoringEmailAuthType; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getMonitoringLevel() */ @Override public Integer getMonitoringLevel() { if (monitoringLevel == null) { return MONITORING_NEVER; } return monitoringLevel; } /** * @param monitoringLevel the monitoringLevel to set */ public void setMonitoringLevel(final Integer monitoringLevel) { this.monitoringLevel = monitoringLevel; } /** * @see org.esupportail.helpdesk.domain.beans.TicketContainer#getIcon() */ @Override public Icon getIcon() { return icon; } /** * @param icon the icon to set */ public void setIcon(final Icon icon) { this.icon = icon; } }