package com.socialize.util; import com.socialize.Socialize; import com.socialize.config.SocializeConfig; import com.socialize.error.SocializeException; import com.socialize.log.SocializeLogger; import com.socialize.ui.SocializeEntityLoader; public class SocializeEntityLoaderUtils implements EntityLoaderUtils { private SocializeConfig config; private ObjectUtils objectUtils; private SocializeLogger logger; /* (non-Javadoc) * @see com.socialize.util.EntityLoaderUtils#initEntityLoader() */ @Override public SocializeEntityLoader initEntityLoader() { SocializeEntityLoader entityLoader = Socialize.getSocialize().getEntityLoader(); if(entityLoader == null) { String entityLoaderClassName = config.getProperty(SocializeConfig.SOCIALIZE_ENTITY_LOADER); if(!StringUtils.isEmpty(entityLoaderClassName)) { try { if(logger != null && logger.isDebugEnabled()) { logger.debug("Instantiating entity loader [" + entityLoader + "]"); } Object loader = objectUtils.construct(entityLoaderClassName); if(loader instanceof SocializeEntityLoader) { entityLoader = (SocializeEntityLoader)loader; Socialize.getSocialize().setEntityLoader(entityLoader); } else { if(logger != null) { logger.error("Entity loader [" + entityLoader + "] is not an instance of [" + SocializeEntityLoader.class.getName() + "]"); } } } catch (SocializeException e) { if(logger != null) { logger.error("Failed to instantiate entity loader [" + entityLoader + "]", e); } } } else { if(logger != null) { logger.warn("No entity loader specified in socialize.properties"); } } } return entityLoader; } public void setConfig(SocializeConfig config) { this.config = config; } public void setObjectUtils(ObjectUtils objectUtils) { this.objectUtils = objectUtils; } public void setLogger(SocializeLogger logger) { this.logger = logger; } }