Mercurial > hg > LGDataverses
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; + } + +}
