package jp.aegif.nemaki.cmis.factory.auth; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import org.apache.chemistry.opencmis.commons.data.ExtensionsData; import org.apache.chemistry.opencmis.commons.data.RepositoryInfo; import org.apache.chemistry.opencmis.commons.server.CallContext; import org.apache.chemistry.opencmis.commons.server.CmisService; import org.apache.chemistry.opencmis.server.support.wrapper.CmisServiceWrapperManager; import org.apache.chemistry.opencmis.server.support.wrapper.ConformanceCmisServiceWrapper; import jp.aegif.nemaki.util.constant.CallContextKey; public class CmisServiceWrapper extends ConformanceCmisServiceWrapper{ /** * Constructor used by {@link CmisServiceWrapperManager}. */ public CmisServiceWrapper(CmisService service) { super(service); } /** * Alternative constructor. */ public CmisServiceWrapper(CmisService service, BigInteger defaultTypesMaxItems, BigInteger defaultTypesDepth, BigInteger defaultMaxItems, BigInteger defaultDepth, CallContext callContext) { super(service, defaultTypesMaxItems, defaultTypesDepth, defaultMaxItems, defaultDepth); setCallContext(callContext); } @Override public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) { Boolean isSu = (Boolean)getCallContext().get(CallContextKey.IS_SU); if(isSu){ return super.getRepositoryInfos(extension); }else{ List<RepositoryInfo> list = new ArrayList<RepositoryInfo>(); list.add(getRepositoryInfo(getCallContext().getRepositoryId(), extension)); return list; } } }