From bbb7288cc6312b65c8b69aac490e9002d5f45592 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Tue, 14 Feb 2017 13:40:12 +0100 Subject: [PATCH] Clean up code * Remove unused code * Optimize imports (group 10+ and static imports) * Remove redundant variable assignments * Replace explicit type parameters with <> * Remove redundant catch blocks * Use varargs instead of explicit array instantiation * Weaken visibility of methods and fields * Simplify conditions * Do not use StringBuilder for simple concatenations * Fix code style * Remove invalid Javadoc --- .../thm/arsnova/CASLogoutSuccessHandler.java | 5 +- .../de/thm/arsnova/CasUserDetailsService.java | 2 +- .../java/de/thm/arsnova/FeedbackStorage.java | 6 +- src/main/java/de/thm/arsnova/ImageUtils.java | 59 +---- .../LoginAuthenticationSucessHandler.java | 3 +- .../java/de/thm/arsnova/aop/RangeAspect.java | 3 - .../de/thm/arsnova/aop/UserSessionAspect.java | 4 - .../de/thm/arsnova/cache/CacheBuster.java | 1 - .../de/thm/arsnova/config/ExtraConfig.java | 12 +- .../de/thm/arsnova/config/SecurityConfig.java | 21 +- .../controller/ConfigurationController.java | 10 +- .../arsnova/controller/CourseController.java | 2 +- .../LecturerQuestionController.java | 27 +-- .../arsnova/controller/LoginController.java | 7 +- .../arsnova/controller/MotdController.java | 5 +- .../SecurityExceptionControllerAdvice.java | 2 +- .../arsnova/controller/SessionController.java | 10 +- .../arsnova/controller/SocketController.java | 11 +- .../arsnova/controller/UserController.java | 9 +- .../arsnova/controller/WelcomeController.java | 2 +- .../java/de/thm/arsnova/dao/CouchDBDao.java | 205 ++++++++---------- .../java/de/thm/arsnova/dao/IDatabaseDao.java | 3 - .../de/thm/arsnova/domain/CourseScore.java | 11 +- .../domain/ILearningProgressFactory.java | 2 +- .../thm/arsnova/domain/LearningProgress.java | 4 +- .../de/thm/arsnova/domain/QuestionScore.java | 3 +- .../de/thm/arsnova/entities/Feedback.java | 2 +- .../de/thm/arsnova/entities/LoggedIn.java | 2 +- .../de/thm/arsnova/entities/Question.java | 9 +- .../java/de/thm/arsnova/entities/Session.java | 4 +- .../de/thm/arsnova/entities/SessionInfo.java | 2 +- .../java/de/thm/arsnova/entities/User.java | 1 - .../transport/ImportExportSession.java | 15 +- .../transport/InterposedQuestion.java | 2 +- .../de/thm/arsnova/events/LockVoteEvent.java | 2 +- .../events/PiRoundDelayedStartEvent.java | 2 +- .../thm/arsnova/events/PiRoundEndEvent.java | 2 +- .../thm/arsnova/events/PiRoundResetEvent.java | 2 +- .../thm/arsnova/events/UnlockVoteEvent.java | 2 +- .../ApplicationPermissionEvaluator.java | 20 +- .../security/CustomLdapUserDetailsMapper.java | 3 +- .../security/DbUserDetailsService.java | 2 +- .../thm/arsnova/services/FeedbackService.java | 6 +- .../de/thm/arsnova/services/MotdService.java | 12 +- .../thm/arsnova/services/QuestionService.java | 15 +- .../services/ResponseProviderService.java | 4 +- .../thm/arsnova/services/SessionService.java | 17 +- .../de/thm/arsnova/services/UserService.java | 34 +-- .../arsnova/socket/ARSnovaSocketIOServer.java | 40 ++-- .../java/de/thm/arsnova/web/CacheControl.java | 4 +- .../web/ResponseInterceptorHandler.java | 2 +- .../core/metrics/MonitorGauges.java | 2 +- .../java/de/thm/arsnova/ImageUtilsTest.java | 5 +- .../arsnova/config/TestSecurityConfig.java | 2 +- .../controller/AbstractControllerTest.java | 2 +- .../controller/CourseControllerTest.java | 2 +- .../controller/FeedbackControllerTest.java | 5 +- .../LecturerQuestionControllerTest.java | 6 +- .../controller/LoginControllerTest.java | 5 +- .../controller/SessionControllerTest.java | 11 +- .../controller/StatisticsControllerTest.java | 5 +- .../java/de/thm/arsnova/dao/NovaViewTest.java | 4 +- .../de/thm/arsnova/dao/StubDatabaseDao.java | 12 +- .../arsnova/services/QuestionServiceTest.java | 6 +- .../arsnova/services/SessionServiceTest.java | 10 +- .../thm/arsnova/services/UserServiceTest.java | 8 +- 66 files changed, 276 insertions(+), 444 deletions(-) diff --git a/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java b/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java index e34d6737..074832b3 100644 --- a/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java +++ b/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java @@ -47,7 +47,8 @@ public class CASLogoutSuccessHandler implements LogoutSuccessHandler { final HttpServletResponse response, final Authentication authentication ) throws IOException, ServletException { - String referer = request.getHeader("referer"); + /* Typo in "referer" intended. It is in the spec. */ + String referrer = request.getHeader("referer"); if (response.isCommitted()) { LOGGER.info("Response has already been committed. Unable to redirect to target"); return; @@ -55,7 +56,7 @@ public class CASLogoutSuccessHandler implements LogoutSuccessHandler { redirectStrategy.sendRedirect( request, response, - (casUrl + "/logout?url=") + (referer != null ? referer : defaultTarget) + (casUrl + "/logout?url=") + (referrer != null ? referrer : defaultTarget) ); } diff --git a/src/main/java/de/thm/arsnova/CasUserDetailsService.java b/src/main/java/de/thm/arsnova/CasUserDetailsService.java index 234b7be9..9261648f 100644 --- a/src/main/java/de/thm/arsnova/CasUserDetailsService.java +++ b/src/main/java/de/thm/arsnova/CasUserDetailsService.java @@ -36,7 +36,7 @@ public class CasUserDetailsService extends AbstractCasAssertionUserDetailsServic @Override protected UserDetails loadUserDetails(final Assertion assertion) { - final List<GrantedAuthority> grantedAuthorities = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> grantedAuthorities = new ArrayList<>(); grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_USER")); return new User( diff --git a/src/main/java/de/thm/arsnova/FeedbackStorage.java b/src/main/java/de/thm/arsnova/FeedbackStorage.java index 40927445..bb72be0d 100644 --- a/src/main/java/de/thm/arsnova/FeedbackStorage.java +++ b/src/main/java/de/thm/arsnova/FeedbackStorage.java @@ -58,7 +58,7 @@ public class FeedbackStorage { } private final Map<Session, Map<User, FeedbackStorageObject>> data = - new ConcurrentHashMap<Session, Map<User, FeedbackStorageObject>>(); + new ConcurrentHashMap<>(); public Feedback getFeedback(final Session session) { int a = 0; @@ -116,7 +116,7 @@ public class FeedbackStorage { @Transactional(isolation = Isolation.READ_COMMITTED) public Map<Session, List<User>> cleanFeedbackVotes(final int cleanupFeedbackDelay) { - final Map<Session, List<User>> removedFeedbackOfUsersInSession = new HashMap<Session, List<User>>(); + final Map<Session, List<User>> removedFeedbackOfUsersInSession = new HashMap<>(); for (final Session session : data.keySet()) { if (!session.getFeatures().isLiveClicker()) { List<User> affectedUsers = cleanFeedbackVotesInSession(session, cleanupFeedbackDelay); @@ -135,7 +135,7 @@ public class FeedbackStorage { final boolean forceClean = cleanupFeedbackDelayInMins == 0; final Map<User, FeedbackStorageObject> sessionFeedbacks = data.get(session); - final List<User> affectedUsers = new ArrayList<User>(); + final List<User> affectedUsers = new ArrayList<>(); if (sessionFeedbacks != null) { for (final Map.Entry<User, FeedbackStorageObject> entry : sessionFeedbacks.entrySet()) { diff --git a/src/main/java/de/thm/arsnova/ImageUtils.java b/src/main/java/de/thm/arsnova/ImageUtils.java index 87b1af15..0203e2a1 100644 --- a/src/main/java/de/thm/arsnova/ImageUtils.java +++ b/src/main/java/de/thm/arsnova/ImageUtils.java @@ -31,7 +31,6 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.net.MalformedURLException; import java.net.URL; /** @@ -44,18 +43,18 @@ import java.net.URL; public class ImageUtils { // Or whatever size you want to read in at a time. - private static final int CHUNK_SIZE = 4096; + static final int CHUNK_SIZE = 4096; /** Base64-Mimetype-Prefix start */ - public static final String IMAGE_PREFIX_START = "data:image/"; + static final String IMAGE_PREFIX_START = "data:image/"; /** Base64-Mimetype-Prefix middle part */ - public static final String IMAGE_PREFIX_MIDDLE = ";base64,"; + static final String IMAGE_PREFIX_MIDDLE = ";base64,"; /* default value is 200 pixel in width, set the value in the configuration file */ - private static final int THUMB_WIDTH_DEFAULT = 200; + static final int THUMB_WIDTH_DEFAULT = 200; /* default value is 200 pixel in height, set the value in the configuration file */ - private static final int THUMB_HEIGHT_DEFAULT = 200; + static final int THUMB_HEIGHT_DEFAULT = 200; public static final Logger LOGGER = LoggerFactory.getLogger(ImageUtils.class); @@ -74,7 +73,6 @@ public class ImageUtils { public String encodeImageToString(final String imageUrl) { final String[] urlParts = imageUrl.split("\\."); - final StringBuilder result = new StringBuilder(); // get format // @@ -83,10 +81,7 @@ public class ImageUtils { if (urlParts.length > 0) { final String extension = urlParts[urlParts.length - 1]; - result.append("data:image/" + extension + ";base64,"); - result.append(Base64.encodeBase64String(convertFileToByteArray(imageUrl))); - - return result.toString(); + return "data:image/" + extension + ";base64," + Base64.encodeBase64String(convertFileToByteArray(imageUrl)); } return null; @@ -98,7 +93,7 @@ public class ImageUtils { * @param maybeImage The Image as a base64 encoded {@link String} * @return true if the string is a potentially a base 64 encoded image. */ - public boolean isBase64EncodedImage(String maybeImage) { + boolean isBase64EncodedImage(String maybeImage) { return extractImageInfo(maybeImage) != null; } @@ -113,7 +108,7 @@ public class ImageUtils { * @return two-dimensional {@link String}-array containing the information * "extension" and the "raw-image-{@link String}" */ - public String[] extractImageInfo(final String maybeImage) { + String[] extractImageInfo(final String maybeImage) { if (maybeImage == null) { return null; } else if (maybeImage.isEmpty()) { @@ -159,7 +154,7 @@ public class ImageUtils { * @return The rescaled Image as Base64-encoded {@link String}, returns null * if the passed-on image isn't in a valid format (a Base64-Image). */ - public String createCover(String originalImageString, final int width, final int height) { + String createCover(String originalImageString, final int width, final int height) { if (!isBase64EncodedImage(originalImageString)) { return null; } else { @@ -228,43 +223,13 @@ public class ImageUtils { return false; } - /** - * Gets the bytestream of an image url. - * s - * @param imageUrl The image url as a {@link String} - * @return The <code>byte[]</code> of the image on success, otherwise <code>null</code>. - */ - public byte[] convertImageToByteArray(final String imageUrl, final String extension) { - - try { - final URL url = new URL(imageUrl); - final BufferedImage image = ImageIO.read(url); - final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - ImageIO.write(image, extension, baos); - - baos.flush(); - baos.close(); - return baos.toByteArray(); - - } catch (final MalformedURLException e) { - LOGGER.error(e.getLocalizedMessage()); - } catch (final IOException e) { - LOGGER.error(e.getLocalizedMessage()); - } - - return null; - } - /** * Gets the bytestream of an image url. * * @param imageUrl The image url as a {@link String} * @return The <code>byte[]</code> of the image on success, otherwise <code>null</code>. */ - public byte[] convertFileToByteArray(final String imageUrl) { - - + byte[] convertFileToByteArray(final String imageUrl) { try { final URL url = new URL(imageUrl); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); @@ -282,9 +247,7 @@ public class ImageUtils { return baos.toByteArray(); - } catch (final MalformedURLException e) { - LOGGER.error(e.getLocalizedMessage()); - } catch (final IOException e) { + } catch (IOException e) { LOGGER.error(e.getLocalizedMessage()); } diff --git a/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java b/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java index 9b0bc477..f84cdaf5 100644 --- a/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java +++ b/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java @@ -44,9 +44,8 @@ public class LoginAuthenticationSucessHandler extends if (session == null || session.getAttribute("ars-login-success-url") == null) { return targetUrl; } - String redirect = (String) session.getAttribute("ars-login-success-url"); - return redirect; + return (String) session.getAttribute("ars-login-success-url"); } public void setTargetUrl(final String url) { diff --git a/src/main/java/de/thm/arsnova/aop/RangeAspect.java b/src/main/java/de/thm/arsnova/aop/RangeAspect.java index 7975225d..161199ef 100644 --- a/src/main/java/de/thm/arsnova/aop/RangeAspect.java +++ b/src/main/java/de/thm/arsnova/aop/RangeAspect.java @@ -56,9 +56,6 @@ public class RangeAspect { private static final Logger logger = LoggerFactory.getLogger(RangeAspect.class); /** Sets start and end parameters based on request's range header and sets content range header for the response. - * - * @param controller - * @throws Throwable */ @Around("execution(java.util.List+ de.thm.arsnova.controller.*.*(..)) && this(controller) && @annotation(de.thm.arsnova.web.Pagination)") public Object handlePaginationRange(ProceedingJoinPoint pjp, final PaginationController controller) throws Throwable { diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java index 155351af..80bfd4dc 100644 --- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java +++ b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java @@ -35,10 +35,6 @@ public class UserSessionAspect { private UserSessionService userSessionService; /** Sets current user and ARSnova session in session scoped UserSessionService - * - * @param jp - * @param keyword - * @param session */ @AfterReturning( pointcut = "execution(public * de.thm.arsnova.services.SessionService.joinSession(..)) && args(keyword)", diff --git a/src/main/java/de/thm/arsnova/cache/CacheBuster.java b/src/main/java/de/thm/arsnova/cache/CacheBuster.java index 930d7f19..913c36b2 100644 --- a/src/main/java/de/thm/arsnova/cache/CacheBuster.java +++ b/src/main/java/de/thm/arsnova/cache/CacheBuster.java @@ -19,7 +19,6 @@ package de.thm.arsnova.cache; import de.thm.arsnova.events.*; import org.springframework.cache.annotation.CacheEvict; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** diff --git a/src/main/java/de/thm/arsnova/config/ExtraConfig.java b/src/main/java/de/thm/arsnova/config/ExtraConfig.java index 254e2d36..b0e0cdb2 100644 --- a/src/main/java/de/thm/arsnova/config/ExtraConfig.java +++ b/src/main/java/de/thm/arsnova/config/ExtraConfig.java @@ -18,11 +18,11 @@ package de.thm.arsnova.config; import de.thm.arsnova.ImageUtils; -import de.thm.arsnova.web.CorsFilter; import de.thm.arsnova.connector.client.ConnectorClient; import de.thm.arsnova.connector.client.ConnectorClientImpl; import de.thm.arsnova.socket.ARSnovaSocket; import de.thm.arsnova.socket.ARSnovaSocketIOServer; +import de.thm.arsnova.web.CorsFilter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.PropertiesFactoryBean; @@ -36,11 +36,9 @@ import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.env.Environment; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.FileSystemResource; -import org.springframework.core.io.Resource; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - import java.util.Arrays; /** @@ -70,10 +68,10 @@ public class ExtraConfig extends WebMvcConfigurerAdapter { @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { final PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); - configurer.setLocations(new Resource[] { - new ClassPathResource("arsnova.properties.example"), - new FileSystemResource("/etc/arsnova/arsnova.properties"), - }); + configurer.setLocations( + new ClassPathResource("arsnova.properties.example"), + new FileSystemResource("/etc/arsnova/arsnova.properties") + ); configurer.setIgnoreResourceNotFound(true); configurer.setIgnoreUnresolvablePlaceholders(false); return configurer; diff --git a/src/main/java/de/thm/arsnova/config/SecurityConfig.java b/src/main/java/de/thm/arsnova/config/SecurityConfig.java index 85494b75..21af4606 100644 --- a/src/main/java/de/thm/arsnova/config/SecurityConfig.java +++ b/src/main/java/de/thm/arsnova/config/SecurityConfig.java @@ -41,7 +41,6 @@ import org.springframework.context.annotation.Profile; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.FileSystemResource; -import org.springframework.core.io.Resource; import org.springframework.ldap.core.support.LdapContextSource; import org.springframework.security.access.PermissionEvaluator; import org.springframework.security.authentication.AuthenticationManager; @@ -140,7 +139,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv if (twitterEnabled) { http.addFilterAfter(twitterFilter(), CasAuthenticationFilter.class); } - }; + } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { @@ -170,7 +169,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv auth.authenticationProvider(twitterAuthProvider()); } logger.info("Enabled authentication providers: {}", providers); - }; + } @Bean @Override @@ -181,10 +180,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { final PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); - configurer.setLocations(new Resource[] { - new ClassPathResource("arsnova.properties.example"), - new FileSystemResource("file:///etc/arsnova/arsnova.properties"), - }); + configurer.setLocations( + new ClassPathResource("arsnova.properties.example"), + new FileSystemResource("file:///etc/arsnova/arsnova.properties") + ); configurer.setIgnoreResourceNotFound(true); configurer.setIgnoreUnresolvablePlaceholders(false); @@ -251,7 +250,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv // LDAP Authentication Configuration @Bean - public LdapAuthenticationProvider ldapAuthenticationProvider() throws Exception { + public LdapAuthenticationProvider ldapAuthenticationProvider() { LdapAuthenticationProvider ldapAuthenticationProvider = new LdapAuthenticationProvider(ldapAuthenticator(), ldapAuthoritiesPopulator()); ldapAuthenticationProvider.setUserDetailsContextMapper(customLdapUserDetailsMapper()); @@ -259,7 +258,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv } @Bean - public LdapContextSource ldapContextSource() throws Exception { + public LdapContextSource ldapContextSource() { DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource(ldapUrl); /* TODO: implement support for LDAP bind using manager credentials */ if (!"".equals(ldapManagerUserDn) && !"".equals(ldapManagerPassword)) { @@ -272,7 +271,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv } @Bean - public LdapAuthenticator ldapAuthenticator() throws Exception { + public LdapAuthenticator ldapAuthenticator() { BindAuthenticator authenticator = new BindAuthenticator(ldapContextSource()); authenticator.setUserAttributes(new String[] {ldapUserIdAttr}); if (!"".equals(ldapSearchFilter)) { @@ -287,7 +286,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter implements Serv } @Bean - public LdapAuthoritiesPopulator ldapAuthoritiesPopulator() throws Exception { + public LdapAuthoritiesPopulator ldapAuthoritiesPopulator() { return new NullLdapAuthoritiesPopulator(); } diff --git a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java index 45a6f0b1..75970e43 100644 --- a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java +++ b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java @@ -162,10 +162,10 @@ public class ConfigurationController extends AbstractController { @RequestMapping(method = RequestMethod.GET) @ResponseBody public HashMap<String, Object> getConfiguration(HttpServletRequest request) { - HashMap<String, Object> config = new HashMap<String, Object>(); - HashMap<String, Boolean> features = new HashMap<String, Boolean>(); - HashMap<String, String> publicPool = new HashMap<String, String>(); - HashMap<String, Object> splashscreen = new HashMap<String, Object>(); + HashMap<String, Object> config = new HashMap<>(); + HashMap<String, Boolean> features = new HashMap<>(); + HashMap<String, String> publicPool = new HashMap<>(); + HashMap<String, Object> splashscreen = new HashMap<>(); /* The API path could be unknown to the client in case the request was forwarded */ if ("".equals(apiPath)) { @@ -268,7 +268,7 @@ public class ConfigurationController extends AbstractController { } if (!"".equals(trackingTrackerUrl)) { - HashMap<String, String> tracking = new HashMap<String, String>(); + HashMap<String, String> tracking = new HashMap<>(); config.put("tracking", tracking); tracking.put("provider", trackingProvider); diff --git a/src/main/java/de/thm/arsnova/controller/CourseController.java b/src/main/java/de/thm/arsnova/controller/CourseController.java index 029b393a..adc24428 100644 --- a/src/main/java/de/thm/arsnova/controller/CourseController.java +++ b/src/main/java/de/thm/arsnova/controller/CourseController.java @@ -69,7 +69,7 @@ public class CourseController extends AbstractController { throw new NotImplementedException(); } - final List<Course> result = new ArrayList<Course>(); + final List<Course> result = new ArrayList<>(); for (final Course course : connectorClient.getCourses(currentUser.getUsername()).getCourse()) { if ( diff --git a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java index 2f621b9c..8ce84744 100644 --- a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java +++ b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java @@ -234,19 +234,15 @@ public class LecturerQuestionController extends PaginationController { @RequestParam(value = "lecturequestionsonly", defaultValue = "false", required = false) final boolean lectureQuestionsOnly, @RequestParam(value = "preparationquestionsonly", defaultValue = "false", required = false) final boolean preparationQuestionsOnly ) { - boolean p = true; + boolean p = publish == null || publish; List<Question> questions; - if (publish != null) { - p = publish; - } - if (lectureQuestionsOnly) { questions = questionService.getLectureQuestions(sessionkey); - questionService.publishQuestions(sessionkey, publish, questions); + questionService.publishQuestions(sessionkey, p, questions); } else if (preparationQuestionsOnly) { questions = questionService.getPreparationQuestions(sessionkey); - questionService.publishQuestions(sessionkey, publish, questions); + questionService.publishQuestions(sessionkey, p, questions); } else { questionService.publishAll(sessionkey, p); } @@ -309,7 +305,7 @@ public class LecturerQuestionController extends PaginationController { questions = questionService.replaceImageData(questions); } - return new PaginationListDecorator<Question>(questions, offset, limit); + return new PaginationListDecorator<>(questions, offset, limit); } @ApiOperation(value = "Delete skill questions", @@ -392,8 +388,6 @@ public class LecturerQuestionController extends PaginationController { /** * returns a JSON document which represents the given answer of a question. * - * @param sessionKey - * Session Keyword to which the question belongs to * @param questionId * CouchDB Question ID for which the given answer should be * retrieved @@ -428,12 +422,9 @@ public class LecturerQuestionController extends PaginationController { * <tt>answerText</tt>, <tt>answerSubject</tt> and <tt>answerCount</tt> * properties are set * - * @param sessionKey - * Session Keyword to which the question belongs to * @param questionId * CouchDB Question ID for which the given answers should be * retrieved - * @return List<{@link Answer}> or {@link NotFoundException} * @throws NotFoundException * if wrong session, wrong question or no answers was given * @throws ForbiddenException @@ -448,7 +439,7 @@ public class LecturerQuestionController extends PaginationController { @RequestParam(value = "all", required = false, defaultValue = "false") final Boolean allAnswers, final HttpServletResponse response ) { - List<Answer> answers = null; + List<Answer> answers; if (allAnswers) { answers = questionService.getAllAnswers(questionId, -1, -1); } else if (null == piRound) { @@ -462,7 +453,7 @@ public class LecturerQuestionController extends PaginationController { answers = questionService.getAnswers(questionId, piRound, offset, limit); } if (answers == null) { - return new ArrayList<Answer>(); + return new ArrayList<>(); } return answers; } @@ -543,8 +534,6 @@ public class LecturerQuestionController extends PaginationController { /** * - * @param sessionKey - * Session Keyword to which the question belongs to * @param questionId * CouchDB Question ID for which the given answers should be * retrieved @@ -584,12 +573,10 @@ public class LecturerQuestionController extends PaginationController { nickname = "getAnswerAndAbstentionCount") @RequestMapping(value = "/{questionId}/answerandabstentioncount", method = RequestMethod.GET) public List<Integer> getAnswerAndAbstentionCount(@PathVariable final String questionId) { - List<Integer> list = Arrays.asList( + return Arrays.asList( questionService.getAnswerCount(questionId), questionService.getAbstentionAnswerCount(questionId) ); - - return list; } @ApiOperation(value = "Get all Freetext answers by a question, identified by the question ID", diff --git a/src/main/java/de/thm/arsnova/controller/LoginController.java b/src/main/java/de/thm/arsnova/controller/LoginController.java index 010bcb89..11c8a7d0 100644 --- a/src/main/java/de/thm/arsnova/controller/LoginController.java +++ b/src/main/java/de/thm/arsnova/controller/LoginController.java @@ -59,7 +59,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.MessageFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -207,7 +206,7 @@ public class LoginController extends AbstractController { response.setStatus(HttpStatus.UNAUTHORIZED.value()); } } else if (guestEnabled && "guest".equals(type)) { - List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(); + List<GrantedAuthority> authorities = new ArrayList<>(); authorities.add(new SimpleGrantedAuthority("ROLE_GUEST")); if (username == null || !username.startsWith("Guest") || username.length() != MAX_USERNAME_LENGTH) { username = "Guest" + Sha512DigestUtils.shaHex(request.getSession().getId()).substring(0, MAX_GUESTHASH_LENGTH); @@ -314,7 +313,7 @@ public class LoginController extends AbstractController { @RequestMapping(value = { "/auth/services" }, method = RequestMethod.GET) @ResponseBody public List<ServiceDescription> getServices(final HttpServletRequest request) { - List<ServiceDescription> services = new ArrayList<ServiceDescription>(); + List<ServiceDescription> services = new ArrayList<>(); if ("".equals(apiPath)) { apiPath = request.getContextPath(); @@ -417,7 +416,7 @@ public class LoginController extends AbstractController { } private Collection<GrantedAuthority> getAuthorities() { - List<GrantedAuthority> authList = new ArrayList<GrantedAuthority>(); + List<GrantedAuthority> authList = new ArrayList<>(); authList.add(new SimpleGrantedAuthority("ROLE_USER")); return authList; } diff --git a/src/main/java/de/thm/arsnova/controller/MotdController.java b/src/main/java/de/thm/arsnova/controller/MotdController.java index 8a3ba503..5a77d9e3 100644 --- a/src/main/java/de/thm/arsnova/controller/MotdController.java +++ b/src/main/java/de/thm/arsnova/controller/MotdController.java @@ -38,7 +38,6 @@ import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -67,7 +66,7 @@ public class MotdController extends AbstractController { @ApiParam(value = "audience", required = false) @RequestParam(value = "audience", defaultValue = "all") final String audience, @ApiParam(value = "sessionkey", required = false) @RequestParam(value = "sessionkey", defaultValue = "null") final String sessionkey ) { - List<Motd> motds = new ArrayList<Motd>(); + List<Motd> motds; Date client = new Date(System.currentTimeMillis()); if (!clientdate.isEmpty()) { client.setTime(Long.parseLong(clientdate)); @@ -96,7 +95,7 @@ public class MotdController extends AbstractController { final HttpServletResponse response ) { if (motd != null) { - Motd newMotd = new Motd(); + Motd newMotd; if (motd.getAudience().equals("session") && motd.getSessionkey() != null) { newMotd = motdService.saveSessionMotd(motd.getSessionkey(), motd); } else { diff --git a/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java b/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java index 83262822..128b63de 100644 --- a/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java +++ b/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java @@ -52,7 +52,7 @@ public class SecurityExceptionControllerAdvice { final Exception e, final HttpServletRequest req ) { - final Map<String, String> result = new HashMap<String, String>(); + final Map<String, String> result = new HashMap<>(); result.put("code", "500"); result.put("status", "Internal server error"); result.put("message", e.getMessage()); diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index 97bd166a..e27e60fb 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -17,7 +17,6 @@ */ package de.thm.arsnova.controller; -import org.springframework.context.annotation.Import; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.SessionFeature; @@ -114,7 +113,7 @@ public class SessionController extends PaginationController { @ResponseStatus(HttpStatus.CREATED) public Session postNewSession(@ApiParam(value = "current session", required = true) @RequestBody final Session session, final HttpServletResponse response) { if (session != null && session.isCourseSession()) { - final List<Course> courses = new ArrayList<Course>(); + final List<Course> courses = new ArrayList<>(); final Course course = new Course(); course.setId(session.getCourseId()); courses.add(course); @@ -171,7 +170,7 @@ public class SessionController extends PaginationController { "username", defaultValue = "") final String username, final HttpServletResponse response ) { - List<Session> sessions = null; + List<Session> sessions; if (!username.equals("")) { try { @@ -218,9 +217,6 @@ public class SessionController extends PaginationController { /** * Returns a list of my own sessions with only the necessary information like name, keyword, or counters. - * @param statusOnly The flag that has to be set in order to get this shortened list. - * @param response - * @return */ @ApiOperation(value = "Retrieves a Session", nickname = "getMySessions") @@ -310,7 +306,7 @@ public class SessionController extends PaginationController { @ApiParam(value = "wether interposed questions shall be exported", required = true) @RequestParam(value = "withFeedbackQuestions", defaultValue = "false") final Boolean withFeedbackQuestions, final HttpServletResponse response ) { - List<ImportExportSession> sessions = new ArrayList<ImportExportSession>(); + List<ImportExportSession> sessions = new ArrayList<>(); ImportExportSession temp; for (String key : sessionkey) { sessionService.setActive(key, false); diff --git a/src/main/java/de/thm/arsnova/controller/SocketController.java b/src/main/java/de/thm/arsnova/controller/SocketController.java index 6aea454e..266c22eb 100644 --- a/src/main/java/de/thm/arsnova/controller/SocketController.java +++ b/src/main/java/de/thm/arsnova/controller/SocketController.java @@ -67,10 +67,10 @@ public class SocketController extends AbstractController { @ApiResponse(code = 403, message = HTML_STATUS_403) }) @RequestMapping(method = RequestMethod.POST, value = "/assign") - public void authorize(@ApiParam(value = "sessionMap", required = true) @RequestBody final Map < String, String> sessionMap, @ApiParam(value = "response", required = true) final HttpServletResponse response) { + public void authorize(@ApiParam(value = "sessionMap", required = true) @RequestBody final Map <String, String> sessionMap, @ApiParam(value = "response", required = true) final HttpServletResponse response) { String socketid = sessionMap.get("session"); if (null == socketid) { - LOGGER.debug("Expected property 'session' missing", socketid); + LOGGER.debug("Expected property 'session' missing"); response.setStatus(HttpStatus.BAD_REQUEST.value()); return; } @@ -89,12 +89,7 @@ public class SocketController extends AbstractController { nickname = "getSocketUrl") @RequestMapping(value = "/url", method = RequestMethod.GET) public String getSocketUrl(final HttpServletRequest request) { - StringBuilder url = new StringBuilder(); - - url.append(server.isUseSSL() ? "https://" : "http://"); - url.append(request.getServerName() + ":" + server.getPortNumber()); - - return url.toString(); + return (server.isUseSSL() ? "https://" : "http://") + request.getServerName() + ":" + server.getPortNumber(); } } diff --git a/src/main/java/de/thm/arsnova/controller/UserController.java b/src/main/java/de/thm/arsnova/controller/UserController.java index b2ef22c2..c036beec 100644 --- a/src/main/java/de/thm/arsnova/controller/UserController.java +++ b/src/main/java/de/thm/arsnova/controller/UserController.java @@ -23,7 +23,6 @@ import de.thm.arsnova.services.UserSessionService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -52,7 +51,7 @@ public class UserController extends AbstractController { public static final Logger LOGGER = LoggerFactory .getLogger(UserController.class); - @RequestMapping(value = { "/register" }, method = RequestMethod.POST) + @RequestMapping(value = "/register", method = RequestMethod.POST) public void register(@RequestParam final String username, @RequestParam final String password, final HttpServletRequest request, final HttpServletResponse response) { @@ -64,7 +63,7 @@ public class UserController extends AbstractController { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); } - @RequestMapping(value = { "/{username}/activate" }, method = { RequestMethod.POST, + @RequestMapping(value = "/{username}/activate", method = { RequestMethod.POST, RequestMethod.GET }) public void activate( @PathVariable final String username, @@ -81,7 +80,7 @@ public class UserController extends AbstractController { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); } - @RequestMapping(value = { "/{username}/" }, method = RequestMethod.DELETE) + @RequestMapping(value = "/{username}/", method = RequestMethod.DELETE) public void activate( @PathVariable final String username, final HttpServletRequest request, @@ -91,7 +90,7 @@ public class UserController extends AbstractController { } } - @RequestMapping(value = { "/{username}/resetpassword" }, method = RequestMethod.POST) + @RequestMapping(value = "/{username}/resetpassword", method = RequestMethod.POST) public void resetPassword( @PathVariable final String username, @RequestParam(required = false) final String key, diff --git a/src/main/java/de/thm/arsnova/controller/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/WelcomeController.java index 46ecf2d7..9313f5ef 100644 --- a/src/main/java/de/thm/arsnova/controller/WelcomeController.java +++ b/src/main/java/de/thm/arsnova/controller/WelcomeController.java @@ -81,7 +81,7 @@ public class WelcomeController extends AbstractController { @RequestMapping(value = "/checkframeoptionsheader", method = RequestMethod.POST) @ResponseStatus(HttpStatus.OK) public void checkFrameOptionsHeader( - @RequestParam(required = true) final String url, + @RequestParam final String url, final HttpServletRequest request ) { /* Block requests from the server itself to prevent DoS attacks caused by request loops */ diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index df7ba297..326f0fa9 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -56,17 +56,8 @@ import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Queue; -import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; /** @@ -102,7 +93,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware private ApplicationEventPublisher publisher; - private final Queue<AbstractMap.SimpleEntry<Document, AnswerQueueElement>> answerQueue = new ConcurrentLinkedQueue<AbstractMap.SimpleEntry<Document, AnswerQueueElement>>(); + private final Queue<AbstractMap.SimpleEntry<Document, AnswerQueueElement>> answerQueue = new ConcurrentLinkedQueue<>(); public static final Logger LOGGER = LoggerFactory.getLogger(CouchDBDao.class); @@ -196,7 +187,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final Results<Session> results = getDatabase().queryView(view, Session.class); - final List<Session> result = new ArrayList<Session>(); + final List<Session> result = new ArrayList<>(); for (final RowResult<Session> row : results.getRows()) { final Session session = row.getValue(); session.setCreator(row.getKey().getString(0)); @@ -213,7 +204,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final ViewResults sessions = getDatabase().view(view); - final List<Session> result = new ArrayList<Session>(); + final List<Session> result = new ArrayList<>(); for (final Document d : sessions.getResults()) { final Session session = (Session) JSONObject.toBean( @@ -240,7 +231,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final ViewResults sessions = getDatabase().view(view); - final List<Session> result = new ArrayList<Session>(); + final List<Session> result = new ArrayList<>(); for (final Document d : sessions.getResults()) { final Session session = (Session) JSONObject.toBean( d.getJSONObject().getJSONObject("value"), @@ -258,7 +249,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware public List<SessionInfo> getMyPublicPoolSessionsInfo(final User user) { final List<Session> sessions = this.getMyPublicPoolSessions(user); if (sessions.isEmpty()) { - return new ArrayList<SessionInfo>(); + return new ArrayList<>(); } return getInfosForSessions(sessions); } @@ -267,7 +258,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware public List<SessionInfo> getMySessionsInfo(final User user, final int start, final int limit) { final List<Session> sessions = this.getMySessions(user, start, limit); if (sessions.isEmpty()) { - return new ArrayList<SessionInfo>(); + return new ArrayList<>(); } return getInfosForSessions(sessions); } @@ -284,7 +275,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware questionCountView.setGroup(true); answerCountView.setSessionIdKeys(sessions); answerCountView.setGroup(true); - List<String> unredInterposedQueryKeys = new ArrayList<String>(); + List<String> unredInterposedQueryKeys = new ArrayList<>(); for (Session s : sessions) { unredInterposedQueryKeys.add("[\"" + s.get_id() + "\",\"unread\"]"); } @@ -297,7 +288,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final ExtendedView answeredQuestionsView = new ExtendedView("answer/by_user"); final ExtendedView questionIdsView = new ExtendedView("skill_question/by_session_only_id_for_all"); questionIdsView.setSessionIdKeys(sessions); - List<String> answeredQuestionQueryKeys = new ArrayList<String>(); + List<String> answeredQuestionQueryKeys = new ArrayList<>(); for (Session s : sessions) { answeredQuestionQueryKeys.add("[\"" + user.getUsername() + "\",\"" + s.get_id() + "\"]"); } @@ -307,8 +298,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware private List<SessionInfo> getVisitedSessionInfoData(List<Session> sessions, ExtendedView answeredQuestionsView, ExtendedView questionIdsView) { - final Map<String, Set<String>> answeredQuestionsMap = new HashMap<String, Set<String>>(); - final Map<String, Set<String>> questionIdMap = new HashMap<String, Set<String>>(); + final Map<String, Set<String>> answeredQuestionsMap = new HashMap<>(); + final Map<String, Set<String>> questionIdMap = new HashMap<>(); final ViewResults answeredQuestionsViewResults = getDatabase().view(answeredQuestionsView); final ViewResults questionIdsViewResults = getDatabase().view(questionIdsView); @@ -318,7 +309,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final String questionId = d.getString("value"); Set<String> questionIdsInSession = answeredQuestionsMap.get(sessionId); if (questionIdsInSession == null) { - questionIdsInSession = new HashSet<String>(); + questionIdsInSession = new HashSet<>(); } questionIdsInSession.add(questionId); answeredQuestionsMap.put(sessionId, questionIdsInSession); @@ -330,29 +321,29 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final String questionId = d.getId(); Set<String> questionIdsInSession = questionIdMap.get(sessionId); if (questionIdsInSession == null) { - questionIdsInSession = new HashSet<String>(); + questionIdsInSession = new HashSet<>(); } questionIdsInSession.add(questionId); questionIdMap.put(sessionId, questionIdsInSession); } // For each session, count the question IDs that are not yet answered - Map<String, Integer> unansweredQuestionsCountMap = new HashMap<String, Integer>(); + Map<String, Integer> unansweredQuestionsCountMap = new HashMap<>(); for (final Session s : sessions) { if (!questionIdMap.containsKey(s.get_id())) { continue; } // Note: create a copy of the first set so that we don't modify the contents in the original set - Set<String> questionIdsInSession = new HashSet<String>(questionIdMap.get(s.get_id())); + Set<String> questionIdsInSession = new HashSet<>(questionIdMap.get(s.get_id())); Set<String> answeredQuestionIdsInSession = answeredQuestionsMap.get(s.get_id()); if (answeredQuestionIdsInSession == null) { - answeredQuestionIdsInSession = new HashSet<String>(); + answeredQuestionIdsInSession = new HashSet<>(); } questionIdsInSession.removeAll(answeredQuestionIdsInSession); unansweredQuestionsCountMap.put(s.get_id(), questionIdsInSession.size()); } - List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>(); + List<SessionInfo> sessionInfos = new ArrayList<>(); for (Session session : sessions) { int numUnanswered = 0; @@ -376,24 +367,24 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final ViewResults interposedCountViewResults = getDatabase().view(interposedCountView); final ViewResults unredInterposedCountViewResults = getDatabase().view(unredInterposedCountView); - Map<String, Integer> questionCountMap = new HashMap<String, Integer>(); + Map<String, Integer> questionCountMap = new HashMap<>(); for (final Document d : questionCountViewResults.getResults()) { questionCountMap.put(d.getString("key"), d.getInt("value")); } - Map<String, Integer> answerCountMap = new HashMap<String, Integer>(); + Map<String, Integer> answerCountMap = new HashMap<>(); for (final Document d : answerCountViewResults.getResults()) { answerCountMap.put(d.getString("key"), d.getInt("value")); } - Map<String, Integer> interposedCountMap = new HashMap<String, Integer>(); + Map<String, Integer> interposedCountMap = new HashMap<>(); for (final Document d : interposedCountViewResults.getResults()) { interposedCountMap.put(d.getString("key"), d.getInt("value")); } - Map<String, Integer> unredInterposedCountMap = new HashMap<String, Integer>(); + Map<String, Integer> unredInterposedCountMap = new HashMap<>(); for (final Document d : unredInterposedCountViewResults.getResults()) { unredInterposedCountMap.put(d.getJSONArray("key").getString(0), d.getInt("value")); } - List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>(); + List<SessionInfo> sessionInfos = new ArrayList<>(); for (Session session : sessions) { int numQuestions = 0; int numAnswers = 0; @@ -759,7 +750,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final Collection<PossibleAnswer> answers = JSONArray.toCollection(possibleAnswers, PossibleAnswer.class); question.updateRoundManagementState(); - question.setPossibleAnswers(new ArrayList<PossibleAnswer>(answers)); + question.setPossibleAnswers(new ArrayList<>(answers)); question.setSessionKeyword(getSessionKeyword(question.getSessionId())); return question; } catch (final IOException e) { @@ -783,7 +774,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware if (vs != null) { @SuppressWarnings("unchecked") final Collection<VisitedSession> visitedSessions = JSONArray.toCollection(vs, VisitedSession.class); - loggedIn.setVisitedSessions(new ArrayList<VisitedSession>(visitedSessions)); + loggedIn.setVisitedSessions(new ArrayList<>(visitedSessions)); } /* Do not clutter CouchDB. Only update once every 3 hours per session. */ @@ -815,7 +806,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware if (vs != null) { @SuppressWarnings("unchecked") final Collection<VisitedSession> visitedSessions = JSONArray.toCollection(vs, VisitedSession.class); - l.setVisitedSessions(new ArrayList<VisitedSession>(visitedSessions)); + l.setVisitedSessions(new ArrayList<>(visitedSessions)); } return l; } catch (final IOException e) { @@ -886,7 +877,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware view.setEndKey(session.get_id(), "{}"); final ViewResults results = getDatabase().view(view); - List<Question> questions = new ArrayList<Question>(); + List<Question> questions = new ArrayList<>(); for (final Document d : results.getResults()) { final Question q = new Question(); q.set_id(d.getId()); @@ -918,7 +909,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware int count = 0; for (List<Document> partition: partitions) { - List<Document> answersToDelete = new ArrayList<Document>(); + List<Document> answersToDelete = new ArrayList<>(); for (final Document a : partition) { final Document d = new Document(a.getJSONObject("doc")); d.put("_deleted", true); @@ -971,22 +962,16 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @SuppressWarnings("unchecked") @Override public <T> T getObjectFromId(final String documentId, final Class<T> klass) { - T obj = null; try { final Document doc = getDatabase().getDocument(documentId); if (doc == null) { return null; } // TODO: This needs some more error checking... - obj = (T) JSONObject.toBean(doc.getJSONObject(), klass); - } catch (IOException e) { - return null; - } catch (ClassCastException e) { - return null; - } catch (net.sf.json.JSONException e) { + return (T) JSONObject.toBean(doc.getJSONObject(), klass); + } catch (ClassCastException | IOException | net.sf.json.JSONException e) { return null; } - return obj; } @Override @@ -1004,7 +989,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware view.setGroup(true); final ViewResults results = getDatabase().view(view); final int abstentionCount = getDatabaseDao().getAbstentionAnswerCount(questionId); - final List<Answer> answers = new ArrayList<Answer>(); + final List<Answer> answers = new ArrayList<>(); for (final Document d : results.getResults()) { final Answer a = new Answer(); @@ -1029,7 +1014,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final ViewResults results = getDatabase().view(view); final int abstentionCount = getDatabaseDao().getAbstentionAnswerCount(questionId); - final List<Answer> answers = new ArrayList<Answer>(); + final List<Answer> answers = new ArrayList<>(); for (final Document d : results.getResults()) { final Answer a = new Answer(); a.setAnswerCount(d.getInt("value")); @@ -1098,7 +1083,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Answer> getFreetextAnswers(final String questionId, final int start, final int limit) { - final List<Answer> answers = new ArrayList<Answer>(); + final List<Answer> answers = new ArrayList<>(); final NovaView view = new NovaView("skill_question/freetext_answers_full"); if (start > 0) { view.setSkip(start); @@ -1126,7 +1111,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final NovaView view = new NovaView("answer/by_user_and_session_full"); view.setKey(me.getUsername(), s.get_id()); final ViewResults results = getDatabase().view(view); - final List<Answer> answers = new ArrayList<Answer>(); + final List<Answer> answers = new ArrayList<>(); if (results == null || results.getResults() == null || results.getResults().isEmpty()) { return answers; } @@ -1276,7 +1261,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware private List<InterposedQuestion> createInterposedList( final Session session, final ViewResults questions) { - final List<InterposedQuestion> result = new ArrayList<InterposedQuestion>(); + final List<InterposedQuestion> result = new ArrayList<>(); for (final Document document : questions.getResults()) { final InterposedQuestion question = (InterposedQuestion) JSONObject.toBean( document.getJSONObject().getJSONObject("value"), @@ -1344,7 +1329,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } if (!isEmptyResults(creatorResults)) { final JSONArray rows = creatorResults.getJSONArray("rows"); - Set<String> creators = new HashSet<String>(); + Set<String> creators = new HashSet<>(); for (int i = 0; i < rows.size(); i++) { final JSONObject row = rows.getJSONObject(i); creators.add(row.getString("key")); @@ -1353,7 +1338,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } if (!isEmptyResults(studentUserResults)) { final JSONArray rows = studentUserResults.getJSONArray("rows"); - Set<String> students = new HashSet<String>(); + Set<String> students = new HashSet<>(); for (int i = 0; i < rows.size(); i++) { final JSONObject row = rows.getJSONObject(i); students.add(row.getString("key")); @@ -1404,7 +1389,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } view.setKey(user.getUsername()); final ViewResults sessions = getDatabase().view(view); - final List<Session> allSessions = new ArrayList<Session>(); + final List<Session> allSessions = new ArrayList<>(); for (final Document d : sessions.getResults()) { // Not all users have visited sessions if (d.getJSONObject().optJSONArray("value") != null) { @@ -1417,8 +1402,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } } // Filter sessions that don't exist anymore, also filter my own sessions - final List<Session> result = new ArrayList<Session>(); - final List<Session> filteredSessions = new ArrayList<Session>(); + final List<Session> result = new ArrayList<>(); + final List<Session> filteredSessions = new ArrayList<>(); for (final Session s : allSessions) { try { final Session session = getDatabaseDao().getSessionFromKeyword(s.getKeyword()); @@ -1436,7 +1421,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } // Update document to remove sessions that don't exist anymore try { - List<VisitedSession> visitedSessions = new ArrayList<VisitedSession>(); + List<VisitedSession> visitedSessions = new ArrayList<>(); for (final Session s : result) { visitedSessions.add(new VisitedSession(s)); } @@ -1470,7 +1455,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } view.setKey(username); final ViewResults sessions = getDatabase().view(view); - final List<Session> allSessions = new ArrayList<Session>(); + final List<Session> allSessions = new ArrayList<>(); for (final Document d : sessions.getResults()) { // Not all users have visited sessions if (d.getJSONObject().optJSONArray("value") != null) { @@ -1483,8 +1468,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } } // Filter sessions that don't exist anymore, also filter my own sessions - final List<Session> result = new ArrayList<Session>(); - final List<Session> filteredSessions = new ArrayList<Session>(); + final List<Session> result = new ArrayList<>(); + final List<Session> filteredSessions = new ArrayList<>(); for (final Session s : allSessions) { try { final Session session = getDatabaseDao().getSessionFromKeyword(s.getKeyword()); @@ -1502,7 +1487,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } // Update document to remove sessions that don't exist anymore try { - List<VisitedSession> visitedSessions = new ArrayList<VisitedSession>(); + List<VisitedSession> visitedSessions = new ArrayList<>(); for (final Session s : result) { visitedSessions.add(new VisitedSession(s)); } @@ -1529,7 +1514,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware public List<SessionInfo> getMyVisitedSessionsInfo(final User user, final int start, final int limit) { List<Session> sessions = this.getMyVisitedSessions(user, start, limit); if (sessions.isEmpty()) { - return new ArrayList<SessionInfo>(); + return new ArrayList<>(); } return this.getInfosForVisitedSessions(sessions, user); } @@ -1554,15 +1539,15 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware a.put("answerImage", answer.getAnswerImage()); a.put("answerThumbnailImage", answer.getAnswerThumbnailImage()); AnswerQueueElement answerQueueElement = new AnswerQueueElement(session, question, answer, user); - this.answerQueue.offer(new AbstractMap.SimpleEntry<Document, AnswerQueueElement>(a, answerQueueElement)); + this.answerQueue.offer(new AbstractMap.SimpleEntry<>(a, answerQueueElement)); return answer; } @Scheduled(fixedDelay = 5000) public void flushAnswerQueue() { - final Map<Document, Answer> map = new HashMap<Document, Answer>(); - final List<Document> answerList = new ArrayList<Document>(); - final List<AnswerQueueElement> elements = new ArrayList<AnswerQueueElement>(); + final Map<Document, Answer> map = new HashMap<>(); + final List<Document> answerList = new ArrayList<>(); + final List<AnswerQueueElement> elements = new ArrayList<>(); AbstractMap.SimpleEntry<Document, AnswerQueueElement> entry; while ((entry = this.answerQueue.poll()) != null) { final Document doc = entry.getKey(); @@ -1645,7 +1630,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware final ViewResults sessions = getDatabase().view(view); - final List<Session> result = new ArrayList<Session>(); + final List<Session> result = new ArrayList<>(); for (final Document d : sessions.getResults()) { final Session session = (Session) JSONObject.toBean( d.getJSONObject().getJSONObject("value"), @@ -1661,20 +1646,20 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware */ private static class ExtendedView extends NovaView { - public ExtendedView(final String fullname) { + ExtendedView(final String fullname) { super(fullname); } - public void setCourseIdKeys(final List<Course> courses) { - List<String> courseIds = new ArrayList<String>(); + void setCourseIdKeys(final List<Course> courses) { + List<String> courseIds = new ArrayList<>(); for (Course c : courses) { courseIds.add(c.getId()); } setKeys(courseIds); } - public void setSessionIdKeys(final List<Session> sessions) { - List<String> sessionIds = new ArrayList<String>(); + void setSessionIdKeys(final List<Session> sessions) { + List<String> sessionIds = new ArrayList<>(); for (Session s : sessions) { sessionIds.add(s.get_id()); } @@ -1729,9 +1714,9 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } @Override - @Caching(evict = { @CacheEvict("sessions"), @CacheEvict(cacheNames="sessions", key="#p0.keyword") }) + @Caching(evict = { @CacheEvict("sessions"), @CacheEvict(cacheNames = "sessions", key = "#p0.keyword") }) public int[] deleteSession(final Session session) { - int[] count = new int[] { 0, 0 }; + int[] count = new int[] {0, 0}; try { count = deleteAllQuestionsWithAnswers(session); deleteDocument(session.get_id()); @@ -1775,12 +1760,11 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware NovaView view = new NovaView("logged_in/by_last_activity_for_guests"); view.setEndKey(lastActivityBefore); List<Document> results = this.getDatabase().view(view).getResults(); - Map<String, Object> log = new HashMap<>(); int count = 0; List<List<Document>> partitions = Lists.partition(results, BULK_PARTITION_SIZE); for (List<Document> partition: partitions) { - final List<Document> newDocs = new ArrayList<Document>(); + final List<Document> newDocs = new ArrayList<>(); for (final Document oldDoc : partition) { final Document newDoc = new Document(); newDoc.setId(oldDoc.getId()); @@ -1867,8 +1851,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> getAllSkillQuestions(final Session session) { - final List<Question> questions = getQuestions(new NovaView("skill_question/by_session"), session); - return questions; + return getQuestions(new NovaView("skill_question/by_session"), session); } private List<Question> getQuestions(final NovaView view, final Session session) { @@ -1879,7 +1862,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware return null; } - final List<Question> questions = new ArrayList<Question>(); + final List<Question> questions = new ArrayList<>(); Results<Question> results = getDatabase().queryView(view, Question.class); for (final RowResult<Question> row : results.getRows()) { @@ -1993,12 +1976,12 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware ) { final ViewResults answeredQuestions = getDatabase().view(view); - final List<String> answered = new ArrayList<String>(); + final List<String> answered = new ArrayList<>(); for (final Document d : answeredQuestions.getResults()) { answered.add(d.getString("value")); } - final List<String> unanswered = new ArrayList<String>(); + final List<String> unanswered = new ArrayList<>(); for (final String questionId : questions) { if (!answered.contains(questionId)) { unanswered.add(questionId); @@ -2013,12 +1996,12 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware ) { final ViewResults answeredQuestions = getDatabase().view(view); - final Map<String, Integer> answered = new HashMap<String, Integer>(); + final Map<String, Integer> answered = new HashMap<>(); for (final Document d : answeredQuestions.getResults()) { answered.put(d.getJSONArray("value").getString(0), d.getJSONArray("value").getInt(1)); } - final List<String> unanswered = new ArrayList<String>(); + final List<String> unanswered = new ArrayList<>(); for (final Question question : questions) { if (!"slide".equals(question.getQuestionType()) && (!answered.containsKey(question.get_id()) @@ -2033,9 +2016,9 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware private List<String> collectQuestionIds(final NovaView view) { final ViewResults results = getDatabase().view(view); if (results.getResults().size() == 0) { - return new ArrayList<String>(); + return new ArrayList<>(); } - final List<String> ids = new ArrayList<String>(); + final List<String> ids = new ArrayList<>(); for (final Document d : results.getResults()) { ids.add(d.getId()); } @@ -2097,7 +2080,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware for (final Question q : questions) { q.setActive(publish); } - final List<Document> documents = new ArrayList<Document>(); + final List<Document> documents = new ArrayList<>(); for (final Question q : questions) { final Document d = toQuestionDocument(session, q); d.setId(q.get_id()); @@ -2130,7 +2113,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware q.setVotingDisabled(disableVoting); } } - final List<Document> documents = new ArrayList<Document>(); + final List<Document> documents = new ArrayList<>(); for (final Question q : questions) { final Document d = toQuestionDocument(session, q); d.setId(q.get_id()); @@ -2185,7 +2168,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware for (final Question q : questions) { q.resetQuestionState(); } - final List<Document> documents = new ArrayList<Document>(); + final List<Document> documents = new ArrayList<>(); for (final Question q : questions) { final Document d = toQuestionDocument(session, q); d.setId(q.get_id()); @@ -2200,7 +2183,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } private int deleteAllAnswersForQuestions(List<Question> questions) { - List<String> questionIds = new ArrayList<String>(); + List<String> questionIds = new ArrayList<>(); for (Question q : questions) { questionIds.add(q.get_id()); } @@ -2208,7 +2191,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware bulkView.setKeys(questionIds); bulkView.setIncludeDocs(true); final List<Document> result = getDatabase().view(bulkView).getResults(); - final List<Document> allAnswers = new ArrayList<Document>(); + final List<Document> allAnswers = new ArrayList<>(); for (Document a : result) { final Document d = new Document(a.getJSONObject("doc")); d.put("_deleted", true); @@ -2226,8 +2209,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } private int[] deleteAllAnswersWithQuestions(List<Question> questions) { - List<String> questionIds = new ArrayList<String>(); - final List<Document> allQuestions = new ArrayList<Document>(); + List<String> questionIds = new ArrayList<>(); + final List<Document> allQuestions = new ArrayList<>(); for (Question q : questions) { final Document d = new Document(); d.put("_id", q.get_id()); @@ -2241,7 +2224,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware bulkView.setIncludeDocs(true); final List<Document> result = getDatabase().view(bulkView).getResults(); - final List<Document> allAnswers = new ArrayList<Document>(); + final List<Document> allAnswers = new ArrayList<>(); for (Document a : result) { final Document d = new Document(a.getJSONObject("doc")); d.put("_deleted", true); @@ -2249,16 +2232,16 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } try { - List<Document> deleteList = new ArrayList<Document>(allAnswers); + List<Document> deleteList = new ArrayList<>(allAnswers); deleteList.addAll(allQuestions); getDatabase().bulkSaveDocuments(deleteList.toArray(new Document[deleteList.size()])); - return new int[] { deleteList.size(), result.size() }; + return new int[] {deleteList.size(), result.size()}; } catch (IOException e) { LOGGER.error("Could not bulk delete questions and answers: {}", e.getMessage()); } - return new int[] { 0, 0 }; + return new int[] {0, 0}; } @Cacheable("learningprogress") @@ -2374,7 +2357,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware int count = 0; final List<List<Document>> partitions = Lists.partition(results, BULK_PARTITION_SIZE); for (List<Document> partition: partitions) { - final List<Document> newDocs = new ArrayList<Document>(); + final List<Document> newDocs = new ArrayList<>(); for (Document oldDoc : partition) { final Document newDoc = new Document(); newDoc.setId(oldDoc.getId()); @@ -2407,17 +2390,17 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public SessionInfo importSession(User user, ImportExportSession importSession) { final Session session = this.saveSession(user, importSession.generateSessionEntity(user)); - List<Document> questions = new ArrayList<Document>(); + List<Document> questions = new ArrayList<>(); // We need to remember which answers belong to which question. // The answers need a questionId, so we first store the questions to get the IDs. // Then we update the answer objects and store them as well. - Map<Document, ImportExportQuestion> mapping = new HashMap<Document, ImportExportQuestion>(); + Map<Document, ImportExportQuestion> mapping = new HashMap<>(); // Later, generate all answer documents - List<Document> answers = new ArrayList<Document>(); + List<Document> answers = new ArrayList<>(); // We can then push answers together with interposed questions in one large bulk request - List<Document> interposedQuestions = new ArrayList<Document>(); + List<Document> interposedQuestions = new ArrayList<>(); // Motds shouldn't be forgotten, too - List<Document> motds = new ArrayList<Document>(); + List<Document> motds = new ArrayList<>(); try { // add session id to all questions and generate documents for (ImportExportQuestion question : importSession.getQuestions()) { @@ -2478,7 +2461,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware d.put("enddate", String.valueOf(m.getEnddate().getTime())); motds.add(d); } - List<Document> documents = new ArrayList<Document>(answers); + List<Document> documents = new ArrayList<>(answers); database.bulkSaveDocuments(interposedQuestions.toArray(new Document[interposedQuestions.size()])); database.bulkSaveDocuments(motds.toArray(new Document[motds.size()])); database.bulkSaveDocuments(documents.toArray(new Document[documents.size()])); @@ -2498,7 +2481,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware importExportSession.setSessionFromSessionObject(session); List<Question> questionList = getDatabaseDao().getAllSkillQuestions(session); for (Question question : questionList) { - List<de.thm.arsnova.entities.transport.Answer> answerList = new ArrayList<de.thm.arsnova.entities.transport.Answer>(); + List<de.thm.arsnova.entities.transport.Answer> answerList = new ArrayList<>(); if (withAnswers) { for (Answer a : this.getDatabaseDao().getAllAnswers(question)) { de.thm.arsnova.entities.transport.Answer transportAnswer = new de.thm.arsnova.entities.transport.Answer(a); @@ -2518,7 +2501,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware importExportSession.addQuestionWithAnswers(question, answerList); } if (withFeedbackQuestions) { - List<de.thm.arsnova.entities.transport.InterposedQuestion> interposedQuestionList = new ArrayList<de.thm.arsnova.entities.transport.InterposedQuestion>(); + List<de.thm.arsnova.entities.transport.InterposedQuestion> interposedQuestionList = new ArrayList<>(); for (InterposedQuestion i : getDatabaseDao().getInterposedQuestions(session, 0, 0)) { de.thm.arsnova.entities.transport.InterposedQuestion transportInterposedQuestion = new de.thm.arsnova.entities.transport.InterposedQuestion(i); interposedQuestionList.add(transportInterposedQuestion); @@ -2532,7 +2515,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware return importExportSession; } - public SessionInfo calculateSessionInfo(ImportExportSession importExportSession, Session session) { + private SessionInfo calculateSessionInfo(ImportExportSession importExportSession, Session session) { int unreadInterposed = 0; int numUnanswered = 0; int numAnswers = 0; @@ -2558,7 +2541,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<String> getSubjects(Session session, String questionVariant) { - String viewString = ""; + String viewString; if ("lecture".equals(questionVariant)) { viewString = "skill_question/lecture_question_subjects_by_session"; } else { @@ -2578,14 +2561,12 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware uniqueSubjects.add(d.getString("value")); } - List<String> uniqueSubjectsList = new ArrayList<>(uniqueSubjects); - - return uniqueSubjectsList; + return new ArrayList<>(uniqueSubjects); } @Override public List<String> getQuestionIdsBySubject(Session session, String questionVariant, String subject) { - String viewString = ""; + String viewString; if ("lecture".equals(questionVariant)) { viewString = "skill_question/lecture_question_ids_by_session_and_subject"; } else { @@ -2619,7 +2600,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware return null; } - final List<Question> result = new ArrayList<Question>(); + final List<Question> result = new ArrayList<>(); final MorpherRegistry morpherRegistry = JSONUtils.getMorpherRegistry(); final Morpher dynaMorpher = new BeanMorpher(PossibleAnswer.class, morpherRegistry); morpherRegistry.registerMorpher(dynaMorpher); @@ -2637,7 +2618,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware document.getJSONObject().getJSONObject("doc").getJSONArray("possibleAnswers"), PossibleAnswer.class ); - question.setPossibleAnswers(new ArrayList<PossibleAnswer>(answers)); + question.setPossibleAnswers(new ArrayList<>(answers)); question.setSessionKeyword(session.getKeyword()); if (!"freetext".equals(question.getQuestionType()) && 0 == question.getPiRound()) { /* needed for legacy questions whose piRound property has not been set */ @@ -2698,7 +2679,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Motd> getMotds(NovaView view) { final ViewResults motddocs = this.getDatabase().view(view); - List<Motd> motdlist = new ArrayList<Motd>(); + List<Motd> motdlist = new ArrayList<>(); for (final Document d : motddocs.getResults()) { Motd motd = new Motd(); motd.set_id(d.getId()); diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 98b77c5c..fad83e08 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -91,9 +91,6 @@ public interface IDatabaseDao { /** * @deprecated Use getSkillQuestionsForUsers or getSkillQuestionsForTeachers - * @param user - * @param session - * @return */ @Deprecated List<Question> getSkillQuestions(User user, Session session); diff --git a/src/main/java/de/thm/arsnova/domain/CourseScore.java b/src/main/java/de/thm/arsnova/domain/CourseScore.java index 2c8bf260..40a3cf09 100644 --- a/src/main/java/de/thm/arsnova/domain/CourseScore.java +++ b/src/main/java/de/thm/arsnova/domain/CourseScore.java @@ -48,13 +48,6 @@ public class CourseScore implements Iterable<QuestionScore> { scores.put(questionId, new QuestionScore(questionId, questionVariant, piRound, questionScore)); } - /** - * @pre questionId has been added before. - * @pre username is set - * @param questionId - * @param username - * @param userscore - */ public void addAnswer(String questionId, int piRound, String username, int userscore) { if (!scores.containsKey(questionId)) { // Precondition failed, ignore this element. @@ -70,7 +63,7 @@ public class CourseScore implements Iterable<QuestionScore> { } public CourseScore filterVariant(String questionVariant) { - Map<String, QuestionScore> newScores = new HashMap<String, QuestionScore>(); + Map<String, QuestionScore> newScores = new HashMap<>(); for (Entry<String, QuestionScore> entry : this.scores.entrySet()) { String questionId = entry.getKey(); QuestionScore questionScore = entry.getValue(); @@ -106,7 +99,7 @@ public class CourseScore implements Iterable<QuestionScore> { } public int getTotalUserCount() { - Set<String> users = new HashSet<String>(); + Set<String> users = new HashSet<>(); for (QuestionScore questionScore : this) { questionScore.collectUsers(users); } diff --git a/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java b/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java index 15812278..07268294 100644 --- a/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java +++ b/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java @@ -22,6 +22,6 @@ package de.thm.arsnova.domain; */ public interface ILearningProgressFactory { - public abstract LearningProgress create(String progressType, String questionVariant); + LearningProgress create(String progressType, String questionVariant); } diff --git a/src/main/java/de/thm/arsnova/domain/LearningProgress.java b/src/main/java/de/thm/arsnova/domain/LearningProgress.java index c2444b37..e3f0f317 100644 --- a/src/main/java/de/thm/arsnova/domain/LearningProgress.java +++ b/src/main/java/de/thm/arsnova/domain/LearningProgress.java @@ -26,7 +26,7 @@ import de.thm.arsnova.entities.transport.LearningProgressValues; */ public interface LearningProgress { - public LearningProgressValues getCourseProgress(Session session); + LearningProgressValues getCourseProgress(Session session); - public LearningProgressValues getMyProgress(Session session, User user); + LearningProgressValues getMyProgress(Session session, User user); } diff --git a/src/main/java/de/thm/arsnova/domain/QuestionScore.java b/src/main/java/de/thm/arsnova/domain/QuestionScore.java index 32150626..f57d46ed 100644 --- a/src/main/java/de/thm/arsnova/domain/QuestionScore.java +++ b/src/main/java/de/thm/arsnova/domain/QuestionScore.java @@ -29,6 +29,7 @@ import java.util.Set; */ public class QuestionScore implements Iterable<UserScore> { + /* FIXME: what is questionId used for? */ private String questionId; private String questionVariant; @@ -37,7 +38,7 @@ public class QuestionScore implements Iterable<UserScore> { private int maximumScore; - private List<UserScore> userScores = new ArrayList<UserScore>(); + private List<UserScore> userScores = new ArrayList<>(); public QuestionScore(String questionId, String questionVariant, int piRound, int maximumScore) { this.questionId = questionId; diff --git a/src/main/java/de/thm/arsnova/entities/Feedback.java b/src/main/java/de/thm/arsnova/entities/Feedback.java index 92692932..c50480f0 100644 --- a/src/main/java/de/thm/arsnova/entities/Feedback.java +++ b/src/main/java/de/thm/arsnova/entities/Feedback.java @@ -35,7 +35,7 @@ public class Feedback { private final List<Integer> values; public Feedback(final int a, final int b, final int c, final int d) { - values = new ArrayList<Integer>(); + values = new ArrayList<>(); values.add(a); values.add(b); values.add(c); diff --git a/src/main/java/de/thm/arsnova/entities/LoggedIn.java b/src/main/java/de/thm/arsnova/entities/LoggedIn.java index 75704572..69f0eebf 100644 --- a/src/main/java/de/thm/arsnova/entities/LoggedIn.java +++ b/src/main/java/de/thm/arsnova/entities/LoggedIn.java @@ -31,7 +31,7 @@ public class LoggedIn { private String user; private String sessionId; private long timestamp; - private List<VisitedSession> visitedSessions = new ArrayList<VisitedSession>(); + private List<VisitedSession> visitedSessions = new ArrayList<>(); private List<String> _conflicts; public LoggedIn() { diff --git a/src/main/java/de/thm/arsnova/entities/Question.java b/src/main/java/de/thm/arsnova/entities/Question.java index 30be981f..c88c4c53 100644 --- a/src/main/java/de/thm/arsnova/entities/Question.java +++ b/src/main/java/de/thm/arsnova/entities/Question.java @@ -700,10 +700,7 @@ public class Question implements Serializable { } public boolean isSuccessfulFreeTextAnswer(String answerTextRaw) { - if (answerTextRaw != null) { - return answerTextRaw.equals(this.getCorrectAnswer()); - } - return false; + return answerTextRaw != null && answerTextRaw.equals(this.getCorrectAnswer()); } public void updateRoundStartVariables(Date start, Date end) { @@ -769,9 +766,9 @@ public class Question implements Serializable { private int calculateGridValue(Answer answer) { int value = 0; String[] answers = answer.getAnswerText().split(","); - for (int i = 0; i < answers.length; i++) { + for (String a : answers) { for (PossibleAnswer p : this.possibleAnswers) { - if (answers[i].equals(p.getText())) { + if (a.equals(p.getText())) { value += p.getValue(); } } diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java index 323c1345..28ad60ec 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Session.java @@ -65,7 +65,7 @@ public class Session implements Serializable { /** * Returns a copy of the given session without any information that identifies a person. * @param original The session to create a anonymized copy of - * @return + * @return The anonymized copy of the session */ public static Session anonymizedCopy(final Session original) { final Session copy = new Session(); @@ -341,7 +341,7 @@ public class Session implements Serializable { public void setFeedbackLock(Boolean lock) { this.feedbackLock = lock; } - + @ApiModelProperty(required = true, value = "the flashcard flip condition") public boolean getFlipFlashcards() { return flipFlashcards; diff --git a/src/main/java/de/thm/arsnova/entities/SessionInfo.java b/src/main/java/de/thm/arsnova/entities/SessionInfo.java index c2db740e..e3422786 100644 --- a/src/main/java/de/thm/arsnova/entities/SessionInfo.java +++ b/src/main/java/de/thm/arsnova/entities/SessionInfo.java @@ -61,7 +61,7 @@ public class SessionInfo { public SessionInfo() { } public static List<SessionInfo> fromSessionList(List<Session> sessions) { - List<SessionInfo> infos = new ArrayList<SessionInfo>(); + List<SessionInfo> infos = new ArrayList<>(); for (Session s : sessions) { infos.add(new SessionInfo(s)); } diff --git a/src/main/java/de/thm/arsnova/entities/User.java b/src/main/java/de/thm/arsnova/entities/User.java index 43097e9e..1fa71ada 100644 --- a/src/main/java/de/thm/arsnova/entities/User.java +++ b/src/main/java/de/thm/arsnova/entities/User.java @@ -24,7 +24,6 @@ import org.scribe.up.profile.google.Google2Profile; import org.scribe.up.profile.twitter.TwitterProfile; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.userdetails.UserDetails; import java.io.Serializable; diff --git a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java index ec091e23..02a01e97 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java +++ b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java @@ -17,17 +17,16 @@ */ package de.thm.arsnova.entities.transport; -import java.util.ArrayList; +import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.Question; import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.User; -import de.thm.arsnova.entities.Motd; -import de.thm.arsnova.entities.SessionInfo; import de.thm.arsnova.entities.SessionFeature; +import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.User; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import org.springframework.context.annotation.Import; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -50,9 +49,9 @@ public class ImportExportSession { private SessionInfo sessionInfo; public ImportExportSession() { - questions = new ArrayList<ImportExportQuestion>(); - feedbackQuestions = new ArrayList<InterposedQuestion>(); - motds = new ArrayList<Motd>(); + questions = new ArrayList<>(); + feedbackQuestions = new ArrayList<>(); + motds = new ArrayList<>(); sessionInfo = null; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java b/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java index 9602c0ea..86d31152 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java +++ b/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java @@ -36,7 +36,7 @@ public class InterposedQuestion { private boolean read; public static List<InterposedQuestion> fromList(List<de.thm.arsnova.entities.InterposedQuestion> questions) { - ArrayList<InterposedQuestion> interposedQuestions = new ArrayList<InterposedQuestion>(); + ArrayList<InterposedQuestion> interposedQuestions = new ArrayList<>(); for (de.thm.arsnova.entities.InterposedQuestion question : questions) { interposedQuestions.add(new InterposedQuestion(question)); } diff --git a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java index 82b6f90c..a3831c99 100644 --- a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java @@ -49,7 +49,7 @@ public class LockVoteEvent extends SessionEvent { } public HashMap<String, Object> getVotingAdmission() { - HashMap<String, Object> map = new HashMap<String, Object>(); + HashMap<String, Object> map = new HashMap<>(); map.put("_id", getQuestionId()); map.put("variant", getQuestionVariant()); diff --git a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java index 87bc2077..6b3418d9 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java @@ -70,7 +70,7 @@ public class PiRoundDelayedStartEvent extends SessionEvent { } public HashMap<String, Object> getPiRoundInformations() { - HashMap<String, Object> map = new HashMap<String, Object>(); + HashMap<String, Object> map = new HashMap<>(); map.put("_id", getQuestionId()); map.put("endTime", getEndTime()); diff --git a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java index 4e69585f..0d1d5df8 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java @@ -52,7 +52,7 @@ public class PiRoundEndEvent extends SessionEvent { } public HashMap<String, String> getPiRoundEndInformations() { - HashMap<String, String> map = new HashMap<String, String>(); + HashMap<String, String> map = new HashMap<>(); map.put("_id", getQuestionId()); map.put("variant", getQuestionVariant()); diff --git a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java index 227e3795..92a7095f 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java @@ -52,7 +52,7 @@ public class PiRoundResetEvent extends SessionEvent { } public HashMap<String, String> getPiRoundResetInformations() { - HashMap<String, String> map = new HashMap<String, String>(); + HashMap<String, String> map = new HashMap<>(); map.put("_id", getQuestionId()); map.put("variant", getQuestionVariant()); diff --git a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java index 3ddfa62d..ef3bf8c7 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java @@ -49,7 +49,7 @@ public class UnlockVoteEvent extends SessionEvent { } public HashMap<String, Object> getVotingAdmission() { - HashMap<String, Object> map = new HashMap<String, Object>(); + HashMap<String, Object> map = new HashMap<>(); map.put("_id", getQuestionId()); map.put("variant", getQuestionVariant()); diff --git a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java index ed0eb951..fef4edb3 100644 --- a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java +++ b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java @@ -98,12 +98,10 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { } private boolean checkAdminPermission(final String username) { - /** TODO only allow accounts from arsnova db **/ + /* TODO: only allow accounts from arsnova db */ String[] splittedAdminNames = adminAccounts.split(","); - if (Arrays.asList(splittedAdminNames).contains(username)) { - return true; - } - return false; + + return Arrays.asList(splittedAdminNames).contains(username); } private boolean checkSessionPermission( @@ -128,10 +126,8 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { final Question question = dao.getQuestion(targetId.toString()); if (question != null) { final Session session = dao.getSessionFromId(question.getSessionId()); - if (session == null) { - return false; - } - return session.getCreator().equals(username); + + return session != null && session.getCreator().equals(username); } } return false; @@ -151,10 +147,8 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { } // Allow deletion if requested by session owner final Session session = dao.getSessionFromKeyword(question.getSessionId()); - if (session == null) { - return false; - } - return session.getCreator().equals(username); + + return session != null && session.getCreator().equals(username); } } return false; diff --git a/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java b/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java index e5704187..b2ab7c99 100644 --- a/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java +++ b/src/main/java/de/thm/arsnova/security/CustomLdapUserDetailsMapper.java @@ -46,8 +46,7 @@ public class CustomLdapUserDetailsMapper extends LdapUserDetailsMapper { LOGGER.warn("LDAP attribute {} not set. Falling back to lowercased user provided username.", userIdAttr); ldapUsername = username.toLowerCase(); } - UserDetails userDetails = super.mapUserFromContext(ctx, ldapUsername, authorities); - return userDetails; + return super.mapUserFromContext(ctx, ldapUsername, authorities); } } diff --git a/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java b/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java index 9c4630e6..d7fe14a6 100644 --- a/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java +++ b/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java @@ -53,7 +53,7 @@ public class DbUserDetailsService implements UserDetailsService { throw new UsernameNotFoundException("User does not exist."); } - final List<GrantedAuthority> grantedAuthorities = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> grantedAuthorities = new ArrayList<>(); grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_USER")); grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_DB_USER")); diff --git a/src/main/java/de/thm/arsnova/services/FeedbackService.java b/src/main/java/de/thm/arsnova/services/FeedbackService.java index 67cafa25..1c49f3d5 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackService.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackService.java @@ -80,7 +80,7 @@ public class FeedbackService implements IFeedbackService, ApplicationEventPublis * sessions to a single user in one go instead of sending multiple messages for each session. Hence, * we need the mapping (User -> Sessions) */ - final Map<User, Set<Session>> affectedSessionsOfUsers = new HashMap<User, Set<Session>>(); + final Map<User, Set<Session>> affectedSessionsOfUsers = new HashMap<>(); for (Map.Entry<Session, List<User>> entry : deletedFeedbackOfUsersInSession.entrySet()) { final Session session = entry.getKey(); @@ -90,7 +90,7 @@ public class FeedbackService implements IFeedbackService, ApplicationEventPublis if (affectedSessionsOfUsers.containsKey(user)) { affectedSessions = affectedSessionsOfUsers.get(user); } else { - affectedSessions = new HashSet<Session>(); + affectedSessions = new HashSet<>(); } affectedSessions.add(session); affectedSessionsOfUsers.put(user, affectedSessions); @@ -112,7 +112,7 @@ public class FeedbackService implements IFeedbackService, ApplicationEventPublis public void cleanFeedbackVotesInSession(final String keyword, final int cleanupFeedbackDelayInMins) { final Session session = databaseDao.getSessionFromKeyword(keyword); List<User> affectedUsers = feedbackStorage.cleanFeedbackVotesInSession(session, cleanupFeedbackDelayInMins); - Set<Session> sessionSet = new HashSet<Session>(); + Set<Session> sessionSet = new HashSet<>(); sessionSet.add(session); // Send feedback reset event to all affected users diff --git a/src/main/java/de/thm/arsnova/services/MotdService.java b/src/main/java/de/thm/arsnova/services/MotdService.java index 72c99e2e..f4ac031e 100644 --- a/src/main/java/de/thm/arsnova/services/MotdService.java +++ b/src/main/java/de/thm/arsnova/services/MotdService.java @@ -23,8 +23,6 @@ import de.thm.arsnova.entities.MotdList; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.exceptions.BadRequestException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; @@ -49,8 +47,6 @@ public class MotdService implements IMotdService { @Autowired private ISessionService sessionService; - private static final Logger LOGGER = LoggerFactory.getLogger(QuestionService.class); - public void setDatabaseDao(final IDatabaseDao databaseDao) { this.databaseDao = databaseDao; } @@ -75,7 +71,7 @@ public class MotdService implements IMotdService { @Override public List<Motd> getCurrentMotds(final Date clientdate, final String audience, final String sessionkey) { - List<Motd> motds = new ArrayList<Motd>(); + final List<Motd> motds; switch (audience) { case "all": motds = databaseDao.getMotdsForAll(); break; case "loggedIn": motds = databaseDao.getMotdsForLoggedIn(); break; @@ -89,7 +85,7 @@ public class MotdService implements IMotdService { @Override public List<Motd> filterMotdsByDate(List<Motd> list, Date clientdate) { - List<Motd> returns = new ArrayList<Motd>(); + List<Motd> returns = new ArrayList<>(); for (Motd motd : list) { if (motd.getStartdate().before(clientdate) && motd.getEnddate().after(clientdate)) { returns.add(motd); @@ -101,8 +97,8 @@ public class MotdService implements IMotdService { @Override public List<Motd> filterMotdsByList(List<Motd> list, MotdList motdlist) { if (motdlist != null && motdlist.getMotdkeys() != null && !motdlist.getMotdkeys().isEmpty()) { - List<Motd> returns = new ArrayList<Motd>(); - HashSet<String> keys = new HashSet(500); // Or a more realistic size + List<Motd> returns = new ArrayList<>(); + HashSet<String> keys = new HashSet<>(500); // Or a more realistic size StringTokenizer st = new StringTokenizer(motdlist.getMotdkeys(), ","); while (st.hasMoreTokens()) { keys.add(st.nextToken()); diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java index 7cff1d6d..014539fd 100644 --- a/src/main/java/de/thm/arsnova/services/QuestionService.java +++ b/src/main/java/de/thm/arsnova/services/QuestionService.java @@ -40,11 +40,8 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.Date; import java.util.HashMap; -import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Timer; @@ -72,7 +69,7 @@ public class QuestionService implements IQuestionService, ApplicationEventPublis public static final Logger LOGGER = LoggerFactory.getLogger(QuestionService.class); - private HashMap<String, Timer> timerList = new HashMap<String, Timer>(); + private HashMap<String, Timer> timerList = new HashMap<>(); public void setDatabaseDao(final IDatabaseDao databaseDao) { this.databaseDao = databaseDao; @@ -287,7 +284,7 @@ public class QuestionService implements IQuestionService, ApplicationEventPublis final Session session = databaseDao.getSessionFromKeyword(question.getSessionKeyword()); question.setVotingDisabled(disableVoting); - if (disableVoting == false && !question.isActive()) { + if (!disableVoting && !question.isActive()) { question.setActive(true); update(question); } else { @@ -536,14 +533,14 @@ public class QuestionService implements IQuestionService, ApplicationEventPublis final Session session = getSession(sessionKey); // Load questions first because we are only interested in answers of the latest piRound. final List<Question> questions = databaseDao.getSkillQuestionsForUsers(session); - final Map<String, Question> questionIdToQuestion = new HashMap<String, Question>(); + final Map<String, Question> questionIdToQuestion = new HashMap<>(); for (final Question question : questions) { questionIdToQuestion.put(question.get_id(), question); } /* filter answers by active piRound per question */ final List<Answer> answers = databaseDao.getMyAnswers(userService.getCurrentUser(), session); - final List<Answer> filteredAnswers = new ArrayList<Answer>(); + final List<Answer> filteredAnswers = new ArrayList<>(); for (final Answer answer : answers) { final Question question = questionIdToQuestion.get(answer.getQuestionId()); if (question == null) { @@ -685,7 +682,7 @@ public class QuestionService implements IQuestionService, ApplicationEventPublis if ("freetext".equals(question.getQuestionType())) { imageUtils.generateThumbnailImage(theAnswer); if (question.isFixedAnswer() && question.getText() != null) { - theAnswer.setAnswerTextRaw(new String(theAnswer.getAnswerText())); + theAnswer.setAnswerTextRaw(theAnswer.getAnswerText()); if (question.isStrictMode()) { question.checkTextStrictOptions(theAnswer); @@ -828,7 +825,7 @@ public class QuestionService implements IQuestionService, ApplicationEventPublis @Override public Map<String, Object> getAnswerAndAbstentionCountInternal(final String questionId) { final Question question = getQuestion(questionId); - HashMap<String, Object> map = new HashMap<String, Object>(); + HashMap<String, Object> map = new HashMap<>(); if (question == null) { return null; diff --git a/src/main/java/de/thm/arsnova/services/ResponseProviderService.java b/src/main/java/de/thm/arsnova/services/ResponseProviderService.java index dd4e9396..59d0e15a 100644 --- a/src/main/java/de/thm/arsnova/services/ResponseProviderService.java +++ b/src/main/java/de/thm/arsnova/services/ResponseProviderService.java @@ -23,7 +23,7 @@ import javax.servlet.http.HttpServletResponse; * Allows access to the {@link HttpServletResponse} outside of Controllers. */ public interface ResponseProviderService { - public void setResponse(HttpServletResponse response); + void setResponse(HttpServletResponse response); - public HttpServletResponse getResponse(); + HttpServletResponse getResponse(); } diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 37b769bb..c0a807ca 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -52,7 +52,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; import java.io.Serializable; -import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.UUID; @@ -191,8 +190,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe @PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')") public Session getSessionForAdmin(final String keyword) { - final Session session = databaseDao.getSessionFromKeyword(keyword); - return session; + return databaseDao.getSessionFromKeyword(keyword); } /* @@ -398,13 +396,6 @@ public class SessionService implements ISessionService, ApplicationEventPublishe public void deleteSession(final String sessionkey) { final Session session = databaseDao.getSessionFromKeyword(sessionkey); - List<String> prepSubjects = databaseDao.getSubjects(session, "preparation"); - if (prepSubjects == null) { - prepSubjects = new ArrayList<String>(); - } else { - prepSubjects.add(""); - } - databaseDao.deleteSession(session); this.publisher.publishEvent(new DeleteSessionEvent(this, session)); @@ -504,12 +495,6 @@ public class SessionService implements ISessionService, ApplicationEventPublishe return databaseDao.updateSession(session).getFlipFlashcards(); } - /** - * - * @param session - * @throws PayloadTooLargeException - * @throws BadRequestException - */ private void handleLogo(Session session) { if (session.getPpLogo() != null) { if (session.getPpLogo().startsWith("http")) { diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java index c3ced54d..e68d0e6a 100644 --- a/src/main/java/de/thm/arsnova/services/UserService.java +++ b/src/main/java/de/thm/arsnova/services/UserService.java @@ -58,8 +58,15 @@ import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.UnsupportedEncodingException; import java.text.MessageFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Pattern; @@ -83,10 +90,10 @@ public class UserService implements IUserService { public static final Logger LOGGER = LoggerFactory.getLogger(UserService.class); - private static final ConcurrentHashMap<UUID, User> socketid2user = new ConcurrentHashMap<UUID, User>(); + private static final ConcurrentHashMap<UUID, User> socketid2user = new ConcurrentHashMap<>(); /* used for Socket.IO online check solution (new) */ - private static final ConcurrentHashMap<User, String> user2session = new ConcurrentHashMap<User, String>(); + private static final ConcurrentHashMap<User, String> user2session = new ConcurrentHashMap<>(); @Autowired private IDatabaseDao databaseDao; @@ -140,7 +147,7 @@ public class UserService implements IUserService { private Set<String> loginBans; { - loginTries = new ConcurrentHashMap<String, Byte>(); + loginTries = new ConcurrentHashMap<>(); loginBans = Collections.synchronizedSet(new HashSet<String>()); } @@ -266,16 +273,13 @@ public class UserService implements IUserService { return false; } String session = user2session.get(user); - if (session == null) { - return false; - } - return keyword.equals(session); + return session != null && keyword.equals(session); } @Override public Set<User> getUsersInSession(final String keyword) { - final Set<User> result = new HashSet<User>(); + final Set<User> result = new HashSet<>(); for (final Entry<User, String> e : user2session.entrySet()) { if (e.getValue().equals(keyword)) { result.add(e.getKey()); @@ -378,7 +382,7 @@ public class UserService implements IUserService { return result; } - public String encodePassword(String password) { + private String encodePassword(String password) { if (null == encoder) { encoder = new BCryptPasswordEncoder(12); } @@ -386,7 +390,7 @@ public class UserService implements IUserService { return encoder.encode(password); } - public void sendActivationEmail(DbUser dbUser) { + private void sendActivationEmail(DbUser dbUser) { String activationUrl; try { activationUrl = MessageFormat.format( @@ -412,7 +416,7 @@ public class UserService implements IUserService { List<String> domainList = Arrays.asList(allowedEmailDomains.split(",")); if (domainList.size() > 0) { - List<String> patterns = new ArrayList<String>(); + List<String> patterns = new ArrayList<>(); if (domainList.contains("*")) { patterns.add("([a-z0-9-]+\\.)+[a-z0-9-]+"); } else { @@ -532,11 +536,9 @@ public class UserService implements IUserService { helper.setSubject(subject); helper.setText(body); - LOGGER.info("Sending mail \"{}\" from \"{}\" to \"{}\"", new Object[] {subject, msg.getFrom(), dbUser.getUsername()}); + LOGGER.info("Sending mail \"{}\" from \"{}\" to \"{}\"", subject, msg.getFrom(), dbUser.getUsername()); mailSender.send(msg); - } catch (MessagingException e) { - LOGGER.warn("Mail \"{}\" could not be sent: {}", subject, e); - } catch (MailException e) { + } catch (MailException | MessagingException e) { LOGGER.warn("Mail \"{}\" could not be sent: {}", subject, e); } } diff --git a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java index 55401f93..8df42e08 100644 --- a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java +++ b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java @@ -17,7 +17,6 @@ */ package de.thm.arsnova.socket; -import com.codahale.metrics.annotation.Metered; import com.codahale.metrics.annotation.Timed; import com.corundumstudio.socketio.AckRequest; import com.corundumstudio.socketio.Configuration; @@ -55,7 +54,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map.Entry; import java.util.Set; @@ -110,9 +109,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { } public void startServer() { - /** - * hack: listen to ipv4 adresses - */ + /* hack: listen to ipv4 adresses */ System.setProperty("java.net.preferIPv4Stack", "true"); SocketConfig soConfig = new SocketConfig(); @@ -145,9 +142,9 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { final de.thm.arsnova.entities.Session session = sessionService.getSessionInternal(sessionKey, u); if (session.getFeedbackLock()) { - LOGGER.debug("Feedback save blocked: {}", new Object[] {u, sessionKey, data.getValue()}); + LOGGER.debug("Feedback save blocked: {}", u, sessionKey, data.getValue()); } else { - LOGGER.debug("Feedback recieved: {}", new Object[] {u, sessionKey, data.getValue()}); + LOGGER.debug("Feedback recieved: {}", u, sessionKey, data.getValue()); if (null != sessionKey) { feedbackService.saveFeedback(sessionKey, data.getValue(), u); } @@ -322,7 +319,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { } public void reportDeletedFeedback(final User user, final Set<de.thm.arsnova.entities.Session> arsSessions) { - final List<String> keywords = new ArrayList<String>(); + final List<String> keywords = new ArrayList<>(); for (final de.thm.arsnova.entities.Session session : arsSessions) { keywords.add(session.getKeyword()); } @@ -330,7 +327,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { } private List<UUID> findConnectionIdForUser(final User user) { - final List<UUID> result = new ArrayList<UUID>(); + final List<UUID> result = new ArrayList<>(); for (final Entry<UUID, User> e : userService.socketId2User()) { final UUID someUsersConnectionId = e.getKey(); final User someUser = e.getValue(); @@ -356,15 +353,11 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { /** * Currently only sends the feedback data to the client. Should be used for all * relevant Socket.IO data, the client needs to know after joining a session. - * - * @param sessionKey - * @param user - * @param client */ public void reportSessionDataToClient(final String sessionKey, final User user, final SocketIOClient client) { final de.thm.arsnova.entities.Session session = sessionService.getSessionInternal(sessionKey, user); final de.thm.arsnova.entities.SessionFeature features = sessionService.getSessionFeatures(sessionKey); - + client.sendEvent("unansweredLecturerQuestions", questionService.getUnAnsweredLectureQuestionIds(sessionKey, user)); client.sendEvent("unansweredPreparationQuestions", questionService.getUnAnsweredPreparationQuestionIds(sessionKey, user)); client.sendEvent("countLectureQuestionAnswers", questionService.countLectureQuestionAnswersInternal(sessionKey)); @@ -436,7 +429,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { } public void reportLecturerQuestionAvailable(final de.thm.arsnova.entities.Session session, final List<de.thm.arsnova.entities.Question> qs) { - List<Question> questions = new ArrayList<Question>(); + List<Question> questions = new ArrayList<>(); for (de.thm.arsnova.entities.Question q : qs) { questions.add(new Question(q)); } @@ -449,7 +442,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { } public void reportLecturerQuestionsLocked(final de.thm.arsnova.entities.Session session, final List<de.thm.arsnova.entities.Question> qs) { - List<Question> questions = new ArrayList<Question>(); + List<Question> questions = new ArrayList<>(); for (de.thm.arsnova.entities.Question q : qs) { questions.add(new Question(q)); } @@ -461,8 +454,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { } public void broadcastInSession(final String sessionKey, final String eventName, final Object data) { - /** - * collect a list of users which are in the current session iterate over + /* collect a list of users which are in the current session iterate over * all connected clients and if send feedback, if user is in current * session */ @@ -478,17 +470,17 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { @Override public void visit(NewQuestionEvent event) { - this.reportLecturerQuestionAvailable(event.getSession(), Arrays.asList(event.getQuestion())); + this.reportLecturerQuestionAvailable(event.getSession(), Collections.singletonList(event.getQuestion())); } @Override public void visit(UnlockQuestionEvent event) { - this.reportLecturerQuestionAvailable(event.getSession(), Arrays.asList(event.getQuestion())); + this.reportLecturerQuestionAvailable(event.getSession(), Collections.singletonList(event.getQuestion())); } @Override public void visit(LockQuestionEvent event) { - this.reportLecturerQuestionsLocked(event.getSession(), Arrays.asList(event.getQuestion())); + this.reportLecturerQuestionsLocked(event.getSession(), Collections.singletonList(event.getQuestion())); } @Override @@ -580,7 +572,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { @Override public void visit(LockVotesEvent event) { - List<Question> questions = new ArrayList<Question>(); + List<Question> questions = new ArrayList<>(); for (de.thm.arsnova.entities.Question q : event.getQuestions()) { questions.add(new Question(q)); } @@ -589,7 +581,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { @Override public void visit(UnlockVotesEvent event) { - List<Question> questions = new ArrayList<Question>(); + List<Question> questions = new ArrayList<>(); for (de.thm.arsnova.entities.Question q : event.getQuestions()) { questions.add(new Question(q)); } @@ -612,7 +604,7 @@ public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor { public void visit(LockFeedbackEvent event) { broadcastInSession(event.getSession().getKeyword(), "lockFeedback", event.getSession().getFeedbackLock()); } - + @Override public void visit(FlipFlashcardsEvent event) { broadcastInSession(event.getSession().getKeyword(), "flipFlashcards", event.getSession().getFlipFlashcards()); diff --git a/src/main/java/de/thm/arsnova/web/CacheControl.java b/src/main/java/de/thm/arsnova/web/CacheControl.java index a5770a53..f2215ef2 100644 --- a/src/main/java/de/thm/arsnova/web/CacheControl.java +++ b/src/main/java/de/thm/arsnova/web/CacheControl.java @@ -34,11 +34,11 @@ public @interface CacheControl { PRIVATE("private"), PUBLIC("public"); - private Policy() { + Policy() { this.policyString = null; } - private Policy(String policyString) { + Policy(String policyString) { this.policyString = policyString; } diff --git a/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java b/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java index e3ff199d..607a0cfc 100644 --- a/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java +++ b/src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java @@ -44,6 +44,6 @@ public class ResponseInterceptorHandler extends HandlerInterceptorAdapter { responseProviderService.setResponse(response); return true; - }; + } } diff --git a/src/main/java/org/stagemonitor/core/metrics/MonitorGauges.java b/src/main/java/org/stagemonitor/core/metrics/MonitorGauges.java index 8e0a25a7..4e1da49e 100644 --- a/src/main/java/org/stagemonitor/core/metrics/MonitorGauges.java +++ b/src/main/java/org/stagemonitor/core/metrics/MonitorGauges.java @@ -7,7 +7,7 @@ import java.lang.annotation.Target; /** * When a type is marked with this annotation, the creation of gauges with - * @{@link com.codahale.metrics.annotation.Gauge} is activated for that type. + * {@link com.codahale.metrics.annotation.Gauge} is activated for that type. * * <pre><code> * \@MonitorGauges diff --git a/src/test/java/de/thm/arsnova/ImageUtilsTest.java b/src/test/java/de/thm/arsnova/ImageUtilsTest.java index 820828ae..4bc46639 100644 --- a/src/test/java/de/thm/arsnova/ImageUtilsTest.java +++ b/src/test/java/de/thm/arsnova/ImageUtilsTest.java @@ -26,10 +26,7 @@ import org.springframework.test.context.web.WebAppConfiguration; import static de.thm.arsnova.ImageUtils.IMAGE_PREFIX_MIDDLE; import static de.thm.arsnova.ImageUtils.IMAGE_PREFIX_START; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration diff --git a/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java b/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java index e7ca87c1..eabdd3be 100644 --- a/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java +++ b/src/test/java/de/thm/arsnova/config/TestSecurityConfig.java @@ -46,7 +46,7 @@ import org.springframework.security.core.session.SessionRegistryImpl; @Profile("test") public class TestSecurityConfig extends SecurityConfig { @Override - protected void configure(HttpSecurity http) {}; + protected void configure(HttpSecurity http) {} @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { diff --git a/src/test/java/de/thm/arsnova/controller/AbstractControllerTest.java b/src/test/java/de/thm/arsnova/controller/AbstractControllerTest.java index 2a105ece..52efdfe3 100644 --- a/src/test/java/de/thm/arsnova/controller/AbstractControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/AbstractControllerTest.java @@ -36,7 +36,7 @@ public abstract class AbstractControllerTest { } protected void setAuthenticated(final boolean isAuthenticated, final String username) { - final List<GrantedAuthority> ga = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> ga = new ArrayList<>(); if (isAuthenticated) { final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, "secret", ga); SecurityContextHolder.getContext().setAuthentication(token); diff --git a/src/test/java/de/thm/arsnova/controller/CourseControllerTest.java b/src/test/java/de/thm/arsnova/controller/CourseControllerTest.java index 20a3b26b..351a9ea5 100644 --- a/src/test/java/de/thm/arsnova/controller/CourseControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/CourseControllerTest.java @@ -71,7 +71,7 @@ public class CourseControllerTest { private void setAuthenticated(final boolean isAuthenticated, final String username) { if (isAuthenticated) { - final List<GrantedAuthority> ga = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> ga = new ArrayList<>(); final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, "secret", ga); SecurityContextHolder.getContext().setAuthentication(token); userService.setUserAuthenticated(isAuthenticated, username); diff --git a/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java b/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java index a58c3cbf..f683ae1b 100644 --- a/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java @@ -32,10 +32,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration diff --git a/src/test/java/de/thm/arsnova/controller/LecturerQuestionControllerTest.java b/src/test/java/de/thm/arsnova/controller/LecturerQuestionControllerTest.java index a07a5d11..ed01dbe6 100644 --- a/src/test/java/de/thm/arsnova/controller/LecturerQuestionControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/LecturerQuestionControllerTest.java @@ -39,9 +39,7 @@ import java.util.ArrayList; import java.util.List; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @@ -67,7 +65,7 @@ public class LecturerQuestionControllerTest { private void setAuthenticated(final boolean isAuthenticated, final String username) { if (isAuthenticated) { - final List<GrantedAuthority> ga = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> ga = new ArrayList<>(); final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, "secret", ga); SecurityContextHolder.getContext().setAuthentication(token); userService.setUserAuthenticated(isAuthenticated, username); diff --git a/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java b/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java index 20528ed7..6e8d3996 100644 --- a/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java @@ -36,10 +36,7 @@ import org.springframework.web.context.WebApplicationContext; import static org.junit.Assert.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration diff --git a/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java b/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java index 6b34610a..c9ea83a0 100644 --- a/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java @@ -38,13 +38,8 @@ import org.springframework.web.context.WebApplicationContext; import java.util.ArrayList; import java.util.List; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @@ -70,7 +65,7 @@ public class SessionControllerTest { private void setAuthenticated(final boolean isAuthenticated, final String username) { if (isAuthenticated) { - final List<GrantedAuthority> ga = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> ga = new ArrayList<>(); final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, "secret", ga); SecurityContextHolder.getContext().setAuthentication(token); userService.setUserAuthenticated(isAuthenticated, username); diff --git a/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java b/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java index c9a7151f..44266707 100644 --- a/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java +++ b/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java @@ -31,10 +31,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration diff --git a/src/test/java/de/thm/arsnova/dao/NovaViewTest.java b/src/test/java/de/thm/arsnova/dao/NovaViewTest.java index 06d8ed17..cbbbf655 100644 --- a/src/test/java/de/thm/arsnova/dao/NovaViewTest.java +++ b/src/test/java/de/thm/arsnova/dao/NovaViewTest.java @@ -24,9 +24,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Arrays; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; public class NovaViewTest { diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index b13eb440..b43af7f4 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -31,10 +31,10 @@ import java.util.concurrent.ConcurrentHashMap; public class StubDatabaseDao implements IDatabaseDao { - private static Map<String, Session> stubSessions = new ConcurrentHashMap<String, Session>(); - private static Map<String, Feedback> stubFeedbacks = new ConcurrentHashMap<String, Feedback>(); - private static Map<String, List<Question>> stubQuestions = new ConcurrentHashMap<String, List<Question>>(); - private static Map<String, User> stubUsers = new ConcurrentHashMap<String, User>(); + private static Map<String, Session> stubSessions = new ConcurrentHashMap<>(); + private static Map<String, Feedback> stubFeedbacks = new ConcurrentHashMap<>(); + private static Map<String, List<Question>> stubQuestions = new ConcurrentHashMap<>(); + private static Map<String, User> stubUsers = new ConcurrentHashMap<>(); public InterposedQuestion interposedQuestion; @@ -91,7 +91,7 @@ public class StubDatabaseDao implements IDatabaseDao { } private void fillWithDummyQuestions() { - List<Question> questions = new ArrayList<Question>(); + List<Question> questions = new ArrayList<>(); questions.add(new Question()); stubQuestions.put("12345678", questions); } @@ -232,7 +232,7 @@ public class StubDatabaseDao implements IDatabaseDao { @Override public List<Answer> getMyAnswers(User user, Session session) { - return new ArrayList<Answer>(); + return new ArrayList<>(); } @Override diff --git a/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java b/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java index 0ec7036d..962c62c3 100644 --- a/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java @@ -39,9 +39,7 @@ import org.springframework.test.context.web.WebAppConfiguration; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; @WebAppConfiguration @RunWith(SpringJUnit4ClassRunner.class) @@ -64,7 +62,7 @@ public class QuestionServiceTest { private void setAuthenticated(final boolean isAuthenticated, final String username) { if (isAuthenticated) { - final List<GrantedAuthority> ga = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> ga = new ArrayList<>(); final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, "secret", ga); SecurityContextHolder.getContext().setAuthentication(token); userService.setUserAuthenticated(isAuthenticated, username); diff --git a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java index e3698a29..015a2b25 100644 --- a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java @@ -43,13 +43,9 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; @WebAppConfiguration @RunWith(SpringJUnit4ClassRunner.class) @@ -72,7 +68,7 @@ public class SessionServiceTest { private void setAuthenticated(final boolean isAuthenticated, final String username) { if (isAuthenticated) { - final List<GrantedAuthority> ga = new ArrayList<GrantedAuthority>(); + final List<GrantedAuthority> ga = new ArrayList<>(); final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, "secret", ga); SecurityContextHolder.getContext().setAuthentication(token); userService.setUserAuthenticated(isAuthenticated, username); diff --git a/src/test/java/de/thm/arsnova/services/UserServiceTest.java b/src/test/java/de/thm/arsnova/services/UserServiceTest.java index b3836aee..2ed346c7 100644 --- a/src/test/java/de/thm/arsnova/services/UserServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/UserServiceTest.java @@ -48,20 +48,20 @@ import static org.junit.Assert.assertEquals; @ActiveProfiles("test") public class UserServiceTest { - private static final ConcurrentHashMap<UUID, User> socketid2user = new ConcurrentHashMap<UUID, User>(); - private static final ConcurrentHashMap<String, String> user2session = new ConcurrentHashMap<String, String>(); + private static final ConcurrentHashMap<UUID, User> socketid2user = new ConcurrentHashMap<>(); + private static final ConcurrentHashMap<String, String> user2session = new ConcurrentHashMap<>(); @Test public void testSocket2UserPersistence() throws IOException, ClassNotFoundException { socketid2user.put(UUID.randomUUID(), new User(new UsernamePasswordAuthenticationToken("ptsr00", UUID.randomUUID()))); socketid2user.put(UUID.randomUUID(), new User(new AttributePrincipalImpl("ptstr0"))); - Map<String, Object> attributes = new HashMap<String, Object>(); + Map<String, Object> attributes = new HashMap<>(); attributes.put(Google2AttributesDefinition.EMAIL, "mail@host.com"); Google2Profile profile = new Google2Profile("ptsr00", attributes); socketid2user.put(UUID.randomUUID(), new User(profile)); - List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(); + List<GrantedAuthority> authorities = new ArrayList<>(); authorities.add(new SimpleGrantedAuthority("ROLE_GUEST")); socketid2user.put(UUID.randomUUID(), new User(new AnonymousAuthenticationToken("ptsr00", UUID.randomUUID(), authorities))); -- GitLab