code cleanup

This commit is contained in:
anhefti 2021-05-18 08:46:31 +02:00
parent 1839d28df9
commit 2e74ea1b7b
2 changed files with 36 additions and 3 deletions

View file

@ -11,7 +11,11 @@ package ch.ethz.seb.sebserver.webservice.servicelayer.lms;
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 */
/** Abstract factory to create an LmsAPITemplate for specific LMS type.
* Since a LmsAPITemplate of a specific LMS type
* is whether a singleton component nor a simple prototype but one (singleton) instance
* can exist per defined LMSSetup, we need a specialized factory to build such
* a LmsAPITemplate for a specific LMSSetup. */
public interface LmsAPITemplateFactory {
/** Defines the LMS type if a specific implementation.

View file

@ -8,9 +8,12 @@
package ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl.olat;
import org.springframework.cache.CacheManager;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import ch.ethz.seb.sebserver.gbl.async.AsyncService;
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup.LmsType;
import ch.ethz.seb.sebserver.gbl.profile.WebServiceProfile;
import ch.ethz.seb.sebserver.gbl.util.Result;
@ -21,8 +24,29 @@ import ch.ethz.seb.sebserver.webservice.servicelayer.lms.LmsAPITemplateFactory;
@Lazy
@Service
@WebServiceProfile
/** Factory for OlatLmsAPITemplate. Since a LmsAPITemplate of a specific LMS type
* is whether a singleton component nor a simple prototype but one (singleton) instance
* can exist per defined LMSSetup, we need a specialized factory to build such
* a LmsAPITemplate for a specific LMSSetup.
* </p<
* Add needed dependencies as final fields and let them inject within the constructor
* as usual. Just add the additionally needed dependencies used to build a OlatLmsAPITemplate. */
public class OlatLmsAPITemplateFactory implements LmsAPITemplateFactory {
private final AsyncService asyncService;
private final Environment environment;
private final CacheManager cacheManager;
public OlatLmsAPITemplateFactory(
final AsyncService asyncService,
final Environment environment,
final CacheManager cacheManager) {
this.asyncService = asyncService;
this.environment = environment;
this.cacheManager = cacheManager;
}
@Override
public LmsType lmsType() {
return LmsType.OPEN_OLAT;
@ -30,8 +54,13 @@ public class OlatLmsAPITemplateFactory implements LmsAPITemplateFactory {
@Override
public Result<LmsAPITemplate> create(final APITemplateDataSupplier apiTemplateDataSupplier) {
// TODO Auto-generated method stub
return null;
return Result.tryCatch(() -> {
return new OlatLmsAPITemplate(
apiTemplateDataSupplier,
this.asyncService,
this.environment,
this.cacheManager);
});
}
}