| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 1 | package de.ids_mannheim.korap.handlers; |
| 2 | |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 3 | import java.sql.ResultSet; |
| 4 | import java.sql.SQLException; |
| Michael Hanl | 59bff81 | 2015-10-27 23:10:32 +0100 | [diff] [blame] | 5 | import java.sql.Timestamp; |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 6 | import java.util.Map; |
| 7 | |
| margaretha | 064eb6f | 2018-07-10 18:33:01 +0200 | [diff] [blame] | 8 | import org.springframework.jdbc.core.RowMapper; |
| 9 | |
| margaretha | 064eb6f | 2018-07-10 18:33:01 +0200 | [diff] [blame] | 10 | import de.ids_mannheim.korap.config.Attributes; |
| 11 | import de.ids_mannheim.korap.config.URIParam; |
| 12 | import de.ids_mannheim.korap.user.KorAPUser; |
| 13 | import de.ids_mannheim.korap.user.User; |
| 14 | |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 15 | /** |
| 16 | * @author hanl |
| 17 | * @date 14/01/2014 |
| 18 | */ |
| 19 | public class RowMapperFactory { |
| 20 | |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame^] | 21 | public static class UserMapMapper implements RowMapper<Map<?, ?>> { |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 22 | |
| 23 | @Override |
| margaretha | 064eb6f | 2018-07-10 18:33:01 +0200 | [diff] [blame] | 24 | public Map<?, ?> mapRow (ResultSet rs, int rowNum) throws SQLException { |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 25 | User user = new UserMapper().mapRow(rs, rowNum); |
| 26 | return user.toMap(); |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | public static class UserMapper implements RowMapper<User> { |
| 31 | |
| 32 | @Override |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 33 | public User mapRow (ResultSet rs, int rowNum) throws SQLException { |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 34 | User user; |
| 35 | switch (rs.getInt("type")) { |
| 36 | case 0: |
| 37 | user = getKorAP(rs); |
| 38 | break; |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame^] | 39 | // case 1: |
| 40 | // user = getShib(rs); |
| 41 | // break; |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 42 | default: |
| 43 | user = User.UserFactory.getDemoUser(); |
| 44 | user.setId(rs.getInt("id")); |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame^] | 45 | user.setAccountCreation( |
| 46 | rs.getTimestamp(Attributes.ACCOUNT_CREATION) |
| 47 | .getTime()); |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 48 | return user; |
| 49 | } |
| 50 | return user; |
| 51 | } |
| 52 | |
| Michael Hanl | 8abaf9e | 2016-05-23 16:46:35 +0200 | [diff] [blame] | 53 | private KorAPUser getKorAP (ResultSet rs) throws SQLException { |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame^] | 54 | KorAPUser user = User.UserFactory |
| 55 | .getUser(rs.getString(Attributes.USERNAME)); |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 56 | user.setPassword(rs.getString(Attributes.PASSWORD)); |
| 57 | user.setId(rs.getInt(Attributes.ID)); |
| 58 | user.setAccountLocked(rs.getBoolean(Attributes.ACCOUNTLOCK)); |
| Michael Hanl | 1939065 | 2016-01-16 11:01:24 +0100 | [diff] [blame] | 59 | user.setAccountCreation(rs.getLong(Attributes.ACCOUNT_CREATION)); |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 60 | user.setAccountLink(rs.getString(Attributes.ACCOUNTLINK)); |
| Michael Hanl | 1939065 | 2016-01-16 11:01:24 +0100 | [diff] [blame] | 61 | long l = rs.getLong(Attributes.URI_EXPIRATION); |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 62 | |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame^] | 63 | URIParam param = new URIParam(rs.getString(Attributes.URI_FRAGMENT), |
| 64 | l == 0 ? -1 : new Timestamp(l).getTime()); |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 65 | user.addField(param); |
| 66 | return user; |
| 67 | } |
| 68 | |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame^] | 69 | // private ShibbolethUser getShib (ResultSet rs) throws SQLException { |
| 70 | // ShibbolethUser user = User.UserFactory.getShibInstance( |
| 71 | // rs.getString(Attributes.USERNAME), |
| 72 | // rs.getString(Attributes.MAIL), rs.getString(Attributes.CN)); |
| 73 | // user.setId(rs.getInt(Attributes.ID)); |
| 74 | // return user; |
| 75 | // } |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 76 | |
| 77 | } |
| 78 | |
| Michael Hanl | 72c7b83 | 2015-09-03 08:42:15 +0200 | [diff] [blame] | 79 | } |