Change Userdata to use String username instead of integer userId

Change-Id: I792450fecb33e91cc5dd58e6ab5cf1dde12ba5bf
diff --git a/Changes b/Changes
index 26308d1..6739ef1 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,7 @@
 - Reactivate Query Serializer Web-service (#903)
 - Fix deprecated URL constructor (AI assisted)
 - Fix Jackson and serialization deprecated methods (AI assisted)
+- Change Userdata to use String username instead of integer userId
 
 # version 1.1
 
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java
index 743daf0..c0b13f3 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java
@@ -23,7 +23,7 @@
         String username = user.getUsername();
         String jsonSettings = settingService.retrieveDefaultSettings(username);
         if (jsonSettings != null) {
-            UserSettingProcessor processor = new UserSettingProcessor(
+            UserSettingProcessor processor = new UserSettingProcessor(username,
                     jsonSettings);
             user.setUserSettingProcessor(processor);
         }
diff --git a/src/main/java/de/ids_mannheim/korap/service/DefaultSettingService.java b/src/main/java/de/ids_mannheim/korap/service/DefaultSettingService.java
index b0ba7d0..ac1e38a 100644
--- a/src/main/java/de/ids_mannheim/korap/service/DefaultSettingService.java
+++ b/src/main/java/de/ids_mannheim/korap/service/DefaultSettingService.java
@@ -57,7 +57,7 @@
         username = verifiyUsername(username, contextUsername);
         validateSettingMap(map);
 
-        UserSettingProcessor processor = new UserSettingProcessor();
+        UserSettingProcessor processor = new UserSettingProcessor(username);
         processor.readQuietly(map, false);
 
         DefaultSetting defaultSetting = settingDao
@@ -67,7 +67,7 @@
             return HttpStatus.SC_CREATED;
         }
         else {
-            updateDefaultSetting(defaultSetting, processor);
+            updateDefaultSetting(username, defaultSetting, processor);
             return HttpStatus.SC_OK;
         }
     }
@@ -78,9 +78,9 @@
         settingDao.createDefaultSetting(username, jsonSettings);
     }
 
-    public void updateDefaultSetting (DefaultSetting setting,
+    public void updateDefaultSetting (String username, DefaultSetting setting,
             UserSettingProcessor newProcessor) throws KustvaktException {
-        UserSettingProcessor processor = new UserSettingProcessor(
+        UserSettingProcessor processor = new UserSettingProcessor(username,
                 setting.getSettings());
         processor.update(newProcessor);
 
@@ -113,7 +113,8 @@
                 .retrieveDefaultSetting(username);
 
         String jsonSettings = defaultSetting.getSettings();
-        UserSettingProcessor processor = new UserSettingProcessor(jsonSettings);
+        UserSettingProcessor processor = new UserSettingProcessor(username,
+        		jsonSettings);
         processor.removeField(key);
         String json = processor.serialize();
 
diff --git a/src/main/java/de/ids_mannheim/korap/user/GenericUserData.java b/src/main/java/de/ids_mannheim/korap/user/GenericUserData.java
index 506e262..da074e1 100644
--- a/src/main/java/de/ids_mannheim/korap/user/GenericUserData.java
+++ b/src/main/java/de/ids_mannheim/korap/user/GenericUserData.java
@@ -6,7 +6,7 @@
 public class GenericUserData extends Userdata {
 
     public GenericUserData () {
-        super(-1);
+        super();
     }
 
     @Override
diff --git a/src/main/java/de/ids_mannheim/korap/user/UserDetails.java b/src/main/java/de/ids_mannheim/korap/user/UserDetails.java
index 9559813..33c8f0e 100644
--- a/src/main/java/de/ids_mannheim/korap/user/UserDetails.java
+++ b/src/main/java/de/ids_mannheim/korap/user/UserDetails.java
@@ -8,13 +8,13 @@
  *       persistence issue with query request
  */
 public class UserDetails extends Userdata {
-
-    public UserDetails () {
+	
+	public UserDetails () {
 
     }
 
-    public UserDetails (Integer userid) {
-        super(userid);
+    public UserDetails (String username) {
+        super(username);
     }
 
     //todo: make configurable!
diff --git a/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java b/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java
index 3fcd976..1bf1b23 100644
--- a/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java
+++ b/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java
@@ -7,19 +7,17 @@
  * @date 28/01/2016
  */
 public class UserSettingProcessor extends Userdata {
-
-    public UserSettingProcessor () {
-
+	public UserSettingProcessor () {
+        super();
     }
-
-    @Deprecated
-    public UserSettingProcessor (Integer userid) {
-        super(userid);
+	
+	public UserSettingProcessor (String username) {
+        super(username);
     }
 
     // EM: added
-    public UserSettingProcessor (String data) {
-        super(data);
+    public UserSettingProcessor (String username,String data) {
+        super(username, data);
     }
 
     @Override
diff --git a/src/main/java/de/ids_mannheim/korap/user/Userdata.java b/src/main/java/de/ids_mannheim/korap/user/Userdata.java
index f607112..7eca3ac 100644
--- a/src/main/java/de/ids_mannheim/korap/user/Userdata.java
+++ b/src/main/java/de/ids_mannheim/korap/user/Userdata.java
@@ -18,32 +18,26 @@
 
     public DataFactory dataFactory = DataFactory.getFactory();
 
-    @Deprecated
-    @Getter
-    @Setter
-    private Integer id;
     @Getter(AccessLevel.PRIVATE)
     private Object data;
-    @Deprecated
     @Getter
     @Setter
-    private Integer userId;
+    private String username;
 
     public Userdata () {
-        this(-1);
+    	this.data = dataFactory.convertData(null);
     }
-
-    // EM: replace with username
-    @Deprecated
-    public Userdata (Integer userid) {
-        this.userId = userid;
-        this.id = -1;
-        this.data = dataFactory.convertData(null);
+    
+    public Userdata (String username) {
+    	this.username = username;
+    	this.data = dataFactory.convertData(null);
     }
-
-    public Userdata (String data) {
+    
+    public Userdata (String username, String data) {
+    	this.username = username;
         this.data = dataFactory.convertData(data);
     }
+    
 
     public int size () {
         return dataFactory.size(this.data);
@@ -78,7 +72,7 @@
     public void checkRequired () throws KustvaktException {
         String[] fields = findMissingFields();
         if (findMissingFields().length != 0) {
-            throw new KustvaktException(userId, StatusCodes.MISSING_PARAMETER,
+            throw new KustvaktException(username, StatusCodes.MISSING_PARAMETER,
                     "User data object not valid. Object has missing fields!",
                     Arrays.asList(fields).toString());
         }
diff --git a/src/test/java/de/ids_mannheim/korap/user/UserdataTest.java b/src/test/java/de/ids_mannheim/korap/user/UserdataTest.java
index 3e3d2de..5ccba18 100644
--- a/src/test/java/de/ids_mannheim/korap/user/UserdataTest.java
+++ b/src/test/java/de/ids_mannheim/korap/user/UserdataTest.java
@@ -66,7 +66,7 @@
     // EM: below are tests from MH
     @Test
     public void testDataValidation () {
-        Userdata data = new UserDetails(1);
+        Userdata data = new UserDetails("1");
         data.setField(Attributes.COUNTRY, "Germany");
         String[] req = data.requiredFields();
         String[] r = data.findMissingFields();
@@ -88,7 +88,7 @@
 
     @Test
     public void testUserdataRequiredFields () throws KustvaktException {
-        UserDetails details = new UserDetails(-1);
+        UserDetails details = new UserDetails("g");
         Map<String, Object> m = new HashMap<>();
         m.put(Attributes.FIRSTNAME, "first");
         m.put(Attributes.LASTNAME, "last");
@@ -126,7 +126,7 @@
     @Test
     public void testUserDataRequiredFieldsException () {
         assertThrows(KustvaktException.class, () -> {
-            UserDetails details = new UserDetails(-1);
+            UserDetails details = new UserDetails("g");
             Map<String, Object> m = new HashMap<>();
             m.put(Attributes.FIRSTNAME, "first");
             m.put(Attributes.LASTNAME, "last");
@@ -141,7 +141,7 @@
 
     @Test
     public void testUserDataPointerFunction () throws KustvaktException {
-        UserDetails details = new UserDetails(-1);
+        UserDetails details = new UserDetails("g");
         Map<String, Object> m = new HashMap<>();
         m.put(Attributes.FIRSTNAME, "first");
         m.put(Attributes.LASTNAME, "last");
@@ -158,12 +158,12 @@
 
     @Test
     public void testUserDataUpdate () {
-        UserDetails details = new UserDetails(-1);
+        UserDetails details = new UserDetails("g");
         details.setField(Attributes.FIRSTNAME, "first");
         details.setField(Attributes.LASTNAME, "last");
         details.setField(Attributes.ADDRESS, "address");
         details.setField(Attributes.EMAIL, "email");
-        UserDetails details2 = new UserDetails(-1);
+        UserDetails details2 = new UserDetails("g");
         details2.setField(Attributes.COUNTRY, "Germany");
         details.update(details2);
         assertEquals("first", details.get(Attributes.FIRSTNAME));