package org.sakaiproject.shortenedurl.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.component.api.ServerConfigurationService; import org.sakaiproject.component.cover.ComponentManager; import org.sakaiproject.shortenedurl.api.ShortenedUrlService; /** * This is the base implementing class which delegates all methods to the configured implementation. * * @author Steve Swinsburg (steve.swinsburg@gmail.com) * */ public class BaseShortenedUrlService implements ShortenedUrlService { private static Log log = LogFactory.getLog(BaseShortenedUrlService.class.getName()); private ShortenedUrlService service; /** * This init method sets up the implementing class that will be used. */ public void init() { log.info("BaseShortenedUrlService init()"); String implementingClass = serverConfigurationService.getString(ShortenedUrlService.IMPLEMENTATION_PROP_NAME, ShortenedUrlService.DEFAULT_IMPLEMENTATION); service = (ShortenedUrlService) ComponentManager.get(implementingClass); log.info("BaseShortenedUrlService init(): Registered implementation: " + implementingClass); } /** * @{inheritDoc} */ public String shorten(String url) { return service.shorten(url); } /** * @{inheritDoc} */ public String shorten(String url, boolean secure) { return service.shorten(url, secure); } /** * @{inheritDoc} */ public String resolve(String key) { return service.resolve(key); } private ServerConfigurationService serverConfigurationService; public void setServerConfigurationService(ServerConfigurationService serverConfigurationService) { this.serverConfigurationService = serverConfigurationService; } }