package com.celements.filebase; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.Requirement; import org.xwiki.configuration.ConfigurationSource; import com.celements.filebase.exceptions.NoValidFileBaseImplFound; import com.google.common.base.Strings; @Component public class FileBaseAccessService implements IFileBaseAccessRole { private static Logger LOGGER = LoggerFactory.getLogger(FileBaseAccessService.class); @Requirement ConfigurationSource configuration; @Requirement Map<String, IFileBaseServiceRole> fileBaseSrvMap; @Override public IFileBaseServiceRole getInstance() throws NoValidFileBaseImplFound { String fileBaseImplKey = getFileBaseImplKey(); if (!Strings.isNullOrEmpty(fileBaseImplKey) && !"default".equals(fileBaseImplKey)) { return fileBaseSrvMap.get(fileBaseImplKey); } LOGGER.error("Failed to get valid FileBase implementation instance."); throw new NoValidFileBaseImplFound(fileBaseImplKey); } private String getFileBaseImplKey() { return configuration.getProperty(FILEBASE_SERVICE_IMPL_CFG, SingleDocFileBaseService.FILEBASE_SINGLE_DOC); } }