1 16 package com.blandware.atleap.webapp.util.core; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.ContentLocale; 20 import com.blandware.atleap.persistence.exception.DeleteException; 21 import com.blandware.atleap.service.core.ContentLocaleManager; 22 import com.blandware.atleap.service.exception.BeanAlreadyExistsException; 23 import com.blandware.atleap.service.exception.BeanNotFoundException; 24 import org.springframework.context.ApplicationContext; 25 import org.springframework.web.context.support.WebApplicationContextUtils; 26 27 import javax.servlet.ServletContext ; 28 import java.util.Collections ; 29 import java.util.List ; 30 31 42 public final class LocaleUtil { 43 44 47 private static final String INSTANCE_KEY = "com.blandware.atleap.webapp.util.LocaleUtil.INSTANCE"; 48 49 52 private List availableLocales; 53 54 57 private List activeLocales; 58 59 62 private ContentLocale defaultLocale; 63 64 67 private ContentLocaleManager contentLocaleManager = null; 68 69 74 private LocaleUtil(ServletContext servletContext) { 75 ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); 76 contentLocaleManager = (ContentLocaleManager) applicationContext.getBean(Constants.CONTENT_LOCALE_MANAGER_BEAN); 77 synchronizeCache(); 78 } 79 80 86 public static LocaleUtil getInstance(ServletContext servletContext) { 87 LocaleUtil localeUtil = (LocaleUtil) servletContext.getAttribute(INSTANCE_KEY); 88 if ( localeUtil == null ) { 89 localeUtil = new LocaleUtil(servletContext); 90 servletContext.setAttribute(INSTANCE_KEY, localeUtil); 91 } 92 return localeUtil; 93 } 94 95 101 public void createContentLocale(ContentLocale locale) throws BeanAlreadyExistsException { 102 contentLocaleManager.createContentLocale(locale); 103 synchronizeCache(); 104 } 105 106 112 public ContentLocale retrieveContentLocale(String identifier) { 113 return contentLocaleManager.retrieveContentLocale(identifier); 114 } 115 116 121 public void updateContentLocale(ContentLocale locale) { 122 contentLocaleManager.updateContentLocale(locale); 123 synchronizeCache(); 124 } 125 126 133 public void deleteContentLocale(String identifier) throws BeanNotFoundException, DeleteException { 134 contentLocaleManager.deleteContentLocale(identifier); 135 synchronizeCache(); 136 } 137 138 143 public void synchronizeCache() { 144 availableLocales = contentLocaleManager.getAvailableLocales(); 145 activeLocales = contentLocaleManager.getActiveLocales(); 146 defaultLocale = contentLocaleManager.getDefaultLocale(); 147 148 Collections.sort(availableLocales); 150 Collections.sort(activeLocales); 151 } 152 153 158 public List getAvailableLocales() { 159 return availableLocales; 160 } 161 162 167 public List getActiveLocales() { 168 return activeLocales; 169 } 170 171 176 public ContentLocale getDefaultLocale() { 177 return defaultLocale; 178 } 179 180 } 181 | Popular Tags |