diff src/main/java/de/mpiwg/monographs/servlet/MonographUtils.java @ 0:fcb8807fbd84

Fist commit!
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Tue, 10 Mar 2015 15:15:30 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/monographs/servlet/MonographUtils.java	Tue Mar 10 15:15:30 2015 +0100
@@ -0,0 +1,163 @@
+package de.mpiwg.monographs.servlet;
+
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONObject;
+import org.swordapp.server.SwordServerException;
+
+import edu.harvard.iq.dvn.core.admin.UserGroup;
+import edu.harvard.iq.dvn.core.admin.VDCUser;
+import edu.harvard.iq.dvn.core.study.FileMetadata;
+import edu.harvard.iq.dvn.core.study.Study;
+import edu.harvard.iq.dvn.core.study.StudyVersion;
+import edu.harvard.iq.dvn.core.vdc.VDCGroup;
+
+public class MonographUtils {
+	
+	public static JSONObject jsonStudy(Study study){
+		JSONObject json = new JSONObject();
+		
+		if(study != null){
+			try {
+				json.put("authority", study.getAuthority());
+				json.put("id", study.getId());
+				json.put("globalId", study.getGlobalId());
+				json.put("harvestIdentifier", study.getHarvestIdentifier());
+				json.put("persistentURL", study.getPersistentURL());
+				json.put("protocol", study.getProtocol());
+				json.put("version", study.getVersion());
+				json.put("studyId", study.getStudyId());
+				json.put("numberOfDownloads", study.getNumberOfDownloads());
+				
+				JSONArray array0 = new JSONArray();
+				for(VDCUser user :  study.getAllowedUsers()){
+					array0.put(jsonVDCUser(user));
+				}
+				json.put("allowedUsers", array0);
+				
+				
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		
+		return json;
+	}
+
+	public static JSONObject jsonVDCUser(VDCUser user){
+		JSONObject json = new JSONObject();
+		
+		try {
+			
+			json.put("email", user.getEmail());
+			json.put("firstName", user.getFirstName());
+			json.put("id", user.getId());
+			json.put("version", user.getVersion());
+			json.put("userName", user.getUserName());
+			json.put("position", user.getPosition());
+			json.put("lastName", user.getLastName());
+			json.put("institution", user.getInstitution());
+			
+			JSONArray array0 = new JSONArray();
+			for(UserGroup group : user.getUserGroups()){
+				array0.put(jsonGroup(group));
+			}
+			json.put("userGroups", array0);
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		
+		return json;
+	}
+	
+	public static JSONObject jsonGroup(UserGroup group){
+		JSONObject json = new JSONObject();
+		
+		if(group != null){
+			try {
+				
+				json.put("friendlyName", group.getFriendlyName());
+				json.put("id", group.getId());
+				
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		
+		return json;
+	}
+	
+	
+	public static JSONObject jsonVDCGroup(VDCGroup group){
+		JSONObject json = new JSONObject();
+		
+		if(group != null){
+			try {
+			
+				json.put("Id", group.getId());
+				json.put("name", group.getName());
+				json.put("parent", group.getParent());
+				json.put("description", group.getDescription());
+				json.put("version", group.getVersion());
+			
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		
+		return json;
+	}
+	
+	
+	public static JSONObject jsonStudyVersion(StudyVersion study) throws SwordServerException{
+		
+		JSONObject jsonStudy = new JSONObject();
+		
+		try {
+			jsonStudy.put("id", study.getId());
+			jsonStudy.put("fileMetadataSize", study.getFileMetadatas().size());
+			jsonStudy.put("fileCategoriesSize", study.getFileCategories().size());
+			jsonStudy.put("version", study.getVersion());
+			jsonStudy.put("archiveNote", study.getArchiveNote());
+			jsonStudy.put("numberOfFiles", study.getNumberOfFiles());
+			jsonStudy.put("versionNumber", study.getVersionNumber());
+			jsonStudy.put("versionState", study.getVersionState());
+			jsonStudy.put("versionNote", study.getVersionNote());
+			jsonStudy.put("deaccessionLink", study.getDeaccessionLink());
+			//jsonStudy.put("deaccessionLinkAsGlobalId", study.getDeaccessionLinkAsGlobalId());
+			
+			
+			JSONObject jsonMetadata = new JSONObject();
+			jsonMetadata.put("accessToSources", study.getMetadata().getAccessToSources());
+			jsonMetadata.put("authorsStr", study.getMetadata().getAuthorsStr());
+			jsonMetadata.put("contact", study.getMetadata().getContact());
+			jsonMetadata.put("dataSources", study.getMetadata().getDataSources());
+			jsonMetadata.put("dataCollector", study.getMetadata().getDataCollector());
+			jsonMetadata.put("id", study.getMetadata().getId());
+			
+			
+			JSONArray fileMetadatas = new JSONArray();
+			for(FileMetadata fileMetadata :  study.getFileMetadatas()){
+				JSONObject tmp = new JSONObject();
+				tmp.put("id", fileMetadata.getId());
+				tmp.put("label", fileMetadata.getLabel());
+				tmp.put("version", fileMetadata.getVersion());
+				tmp.put("studyVersion", fileMetadata.getStudyVersion());
+				
+				fileMetadatas.put(tmp);
+			}
+			jsonStudy.put("fileMetadatas", fileMetadatas);
+			
+			JSONArray fileCategories = new JSONArray();
+			for(String fileCategory : study.getFileCategories()){
+				fileCategories.put(fileCategory);
+			}
+			jsonStudy.put("fileCategories", fileCategories);	
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return jsonStudy;
+	}
+	
+}