/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.web.beans; import java.util.HashMap; import org.esupportail.commons.utils.Assert; import org.esupportail.helpdesk.domain.DomainService; import org.esupportail.helpdesk.domain.beans.Department; import org.esupportail.helpdesk.domain.beans.Icon; import org.esupportail.helpdesk.domain.beans.TicketContainer; import org.springframework.beans.factory.InitializingBean; /** * An abstract bean to give the urls of the icons of the ticket containers. */ @SuppressWarnings("serial") public abstract class AbstractTicketContainerIconUrlProvider extends HashMap<Department, String> implements InitializingBean { /** * The domain service. */ private DomainService domainService; /** * The icon url provider. */ private IconUrlProvider iconUrlProvider; /** * Bean constructor. */ protected AbstractTicketContainerIconUrlProvider() { super(); } /** * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() { Assert.notNull(domainService, "property domainService of class " + this.getClass().getName() + " can not be null"); Assert.notNull(iconUrlProvider, "property iconUrlProvider of class " + this.getClass().getName() + " can not be null"); } /** * @see java.util.HashMap#get(java.lang.Object) */ @Override public String get(final Object o) { TicketContainer container = (TicketContainer) o; Icon icon; if (container == null || container.getEffectiveIcon() == null) { icon = getDefaultIcon(); } else { icon = container.getEffectiveIcon(); } return iconUrlProvider.get(icon); } /** * @return the default icon to use. */ protected abstract Icon getDefaultIcon(); /** * @return the domainService */ protected DomainService getDomainService() { return domainService; } /** * @param domainService the domainService to set */ public void setDomainService(final DomainService domainService) { this.domainService = domainService; } /** * @return the iconUrlProvider */ protected IconUrlProvider getIconUrlProvider() { return iconUrlProvider; } /** * @param iconUrlProvider the iconUrlProvider to set */ public void setIconUrlProvider(final IconUrlProvider iconUrlProvider) { this.iconUrlProvider = iconUrlProvider; } }