Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/IQSS/dataverse
Browse files Browse the repository at this point in the history
  • Loading branch information
ekraffmiller committed Feb 4, 2015
2 parents a68a670 + b2ae3e8 commit 8e0098d
Show file tree
Hide file tree
Showing 12 changed files with 67 additions and 3 deletions.
5 changes: 5 additions & 0 deletions scripts/api/data/dv-pete-sub-normal.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "pete@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Law"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-pete-sub-restricted.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "pete@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Chemistry"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-pete-sub-secret.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "pete@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Astronomy and Astrophysics"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-pete-top.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "pete@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Arts and Humanities"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-root.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
"dataverseContacts": [
{
"contactEmail": "root@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "N/A"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-uma-deletable.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "Uma@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Business and Management"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-uma-sub1.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "Uma@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Medicine, Health & Life Sciences"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-uma-sub2.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "Uma@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Engineering"
}
]
}
5 changes: 5 additions & 0 deletions scripts/api/data/dv-uma-top.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
{
"contactEmail": "Uma@mailinator.com"
}
],
"dataverseSubjects": [
{
"controlledVocabularyValue": "Mathematical Sciences"
}
]
}
1 change: 1 addition & 0 deletions src/main/java/edu/harvard/iq/dataverse/Dataverse.java
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ public void setDefaultContributorRole(DataverseRole defaultContributorRole) {
@JoinTable(name = "dataversesubjects",
joinColumns = @JoinColumn(name = "dataverse_id"),
inverseJoinColumns = @JoinColumn(name = "controlledvocabularyvalue_id"))
@NotEmpty(message="At least one subject is required.")
private List<ControlledVocabularyValue> dataverseSubjects;

public List<ControlledVocabularyValue> getDataverseSubjects() {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public Response addDataverse( String body, @PathParam("identifier") String paren
JsonObject dvJson;
try ( StringReader rdr = new StringReader(body) ) {
dvJson = Json.createReader(rdr).readObject();
d = JsonParser.parseDataverse(dvJson);
d = jsonParser().parseDataverse(dvJson);
} catch ( JsonParsingException jpe ) {
logger.log(Level.SEVERE, "Json: {0}", body);
return errorResponse( Status.BAD_REQUEST, "Error parsing Json: " + jpe.getMessage() );
Expand Down
22 changes: 20 additions & 2 deletions src/main/java/edu/harvard/iq/dataverse/util/json/JsonParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import edu.harvard.iq.dataverse.ControlledVocabularyValue;
import edu.harvard.iq.dataverse.Dataset;
import edu.harvard.iq.dataverse.DatasetField;
import edu.harvard.iq.dataverse.DatasetFieldConstant;
import edu.harvard.iq.dataverse.DatasetFieldCompoundValue;
import edu.harvard.iq.dataverse.DatasetFieldServiceBean;
import edu.harvard.iq.dataverse.DatasetFieldType;
Expand Down Expand Up @@ -48,7 +49,7 @@ public JsonParser(DatasetFieldServiceBean datasetFieldSvc, MetadataBlockServiceB
this.settingsService = settingsService;
}

public static Dataverse parseDataverse( JsonObject jobj ) throws JsonParseException {
public Dataverse parseDataverse( JsonObject jobj ) throws JsonParseException {
Dataverse dv = new Dataverse();

dv.setAlias( getMandatoryString(jobj, "alias") );
Expand All @@ -68,6 +69,23 @@ public static Dataverse parseDataverse( JsonObject jobj ) throws JsonParseExcept
}
dv.setDataverseContacts(dvContactList);
}
if ( jobj.containsKey("dataverseSubjects") ) {
JsonArray dvSubjects= jobj.getJsonArray("dataverseSubjects");
List<ControlledVocabularyValue> dvSubjectList = new LinkedList<>();
for ( JsonValue jsv : dvSubjects ) {
DatasetFieldType dsft = datasetFieldSvc.findByName(DatasetFieldConstant.subject);
JsonObject jobjv = (JsonObject)jsv;
String cvString = jobjv.getString("controlledVocabularyValue");
ControlledVocabularyValue cvv;
if (cvString.equals("N/A")){
cvv = datasetFieldSvc.findNAControlledVocabularyValue();
} else{
cvv = datasetFieldSvc.findControlledVocabularyValueByDatasetFieldTypeAndStrValue(dsft, cvString);
}
dvSubjectList.add( cvv );
}
dv.setDataverseSubjects(dvSubjectList);
}

return dv;
}
Expand All @@ -78,7 +96,7 @@ private static String getMandatoryString( JsonObject jobj, String name ) throws
}
throw new JsonParseException("Field " + name + " is mandatory");
}

public IpGroup parseIpGroup( JsonObject obj ) {
IpGroup retVal = new IpGroup();

Expand Down

0 comments on commit 8e0098d

Please sign in to comment.