From 564b7ec9c901fa03daa0ea7a3bad49ee459aa67d Mon Sep 17 00:00:00 2001 From: anhefti Date: Mon, 15 Mar 2021 13:42:19 +0100 Subject: [PATCH] LMS Setup API improvement comment and compile fix (Java8) --- .../servicelayer/lms/LmsAPITemplateFactory.java | 12 ++++++++++++ .../servicelayer/lms/impl/LmsAPIServiceImpl.java | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/LmsAPITemplateFactory.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/LmsAPITemplateFactory.java index bd317bbc..0af397a8 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/LmsAPITemplateFactory.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/LmsAPITemplateFactory.java @@ -14,10 +14,22 @@ import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup; import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup.LmsType; import ch.ethz.seb.sebserver.gbl.util.Result; +/** Abstract factory to create an LmsAPITemplate for specific LMS type */ public interface LmsAPITemplateFactory { + /** Defines the LMS type if a specific implementation. + * This is used by the service to collect and map the template for specific LMS types. + * + * @return the LMS type if a specific implementation */ LmsType lmsType(); + /** Creates a LmsAPITemplate for the specific implements LMS type. + * + * @param lmsSetup the LMS setup data to initialize the template + * @param credentials the access data for accessing the LMS API. Either client credentials or access token from LMS + * setup input + * @param proxyData The proxy data used to connect to the LMS if needed. + * @return Result refer to the LmsAPITemplate or to an error when happened */ Result create( final LmsSetup lmsSetup, final ClientCredentials credentials, diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/LmsAPIServiceImpl.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/LmsAPIServiceImpl.java index e0ca5ef7..a4a2672f 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/LmsAPIServiceImpl.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/LmsAPIServiceImpl.java @@ -63,11 +63,12 @@ public class LmsAPIServiceImpl implements LmsAPIService { this.lmsSetupDAO = lmsSetupDAO; this.clientCredentialService = clientCredentialService; - this.templateFactories = new EnumMap<>(lmsAPITemplateFactories + final Map factories = lmsAPITemplateFactories .stream() .collect(Collectors.toMap( t -> t.lmsType(), - Function.identity()))); + Function.identity())); + this.templateFactories = new EnumMap<>(factories); } /** Listen to LmsSetupChangeEvent to release an affected LmsAPITemplate from cache