Fixing `publication_date` issue [#26166]

This commit is contained in:
Francesco Mangiacrapa 2023-12-06 09:33:43 +01:00
parent 6dbc1d8e4c
commit 4eb65dc4ed
3 changed files with 202 additions and 207 deletions

View File

@ -4,6 +4,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v1.1.4-SNAPSHOT] - 2023-12-05
- Fixing `publication_date` issue [#26166]
## [v1.1.3] - 2023-07-25 ## [v1.1.3] - 2023-07-25
- Fixing `null` issue, recompiling this component [#25275] - Fixing `null` issue, recompiling this component [#25275]

View File

@ -14,7 +14,7 @@
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>ckan2zenodo-publisher-widget</artifactId> <artifactId>ckan2zenodo-publisher-widget</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.1.3</version> <version>1.1.4-SNAPSHOT</version>
<description> <description>
gCube Ckan2Zenodo Publisher widget allows to publish D4Science catalogue's items on Zenodo gCube Ckan2Zenodo Publisher widget allows to publish D4Science catalogue's items on Zenodo

View File

@ -35,18 +35,17 @@ import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoSubj
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
/** /**
* The Class ItemToZenodoConverter. * The Class ItemToZenodoConverter.
* *
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
* *
* Dec 10, 2019 * Dec 10, 2019
*/ */
public class ItemToZenodoConverter { public class ItemToZenodoConverter {
private static Logger LOG = LoggerFactory.getLogger(ItemToZenodoConverter.class); private static Logger LOG = LoggerFactory.getLogger(ItemToZenodoConverter.class);
/** /**
* ** * **
* *
@ -56,8 +55,7 @@ public class ItemToZenodoConverter {
* @param zenodoDeposition the zenodo deposition * @param zenodoDeposition the zenodo deposition
* @return the zenodo item * @return the zenodo item
*/ */
/** /**
* To zenodo item. * To zenodo item.
* *
@ -65,112 +63,108 @@ public class ItemToZenodoConverter {
* @return the zenodo item * @return the zenodo item
*/ */
public static ZenodoItem toZenodoItem(ZenodoDeposition zenodoDeposition) { public static ZenodoItem toZenodoItem(ZenodoDeposition zenodoDeposition) {
if(zenodoDeposition==null) if (zenodoDeposition == null)
return null; return null;
LOG.debug("Converting item: "+zenodoDeposition); LOG.debug("Converting item: " + zenodoDeposition);
ZenodoItem zi = new ZenodoItem(); ZenodoItem zi = new ZenodoItem();
zi.setId(zenodoDeposition.getId()); zi.setId(zenodoDeposition.getId());
zi.setDoi(zenodoDeposition.getDoi()); zi.setDoi(zenodoDeposition.getDoi());
zi.setCreated(zenodoDeposition.getCreated()); zi.setCreated(zenodoDeposition.getCreated());
//Add files already published in the deposition // Add files already published in the deposition
List<ZenodoFile> files = toZenodoFiles(zenodoDeposition.getFiles(),true); List<ZenodoFile> files = toZenodoFiles(zenodoDeposition.getFiles(), true);
zi.addFiles(files); zi.addFiles(files);
zi.setModified(zenodoDeposition.getModified()); zi.setModified(zenodoDeposition.getModified());
zi.setOwner(zenodoDeposition.getOwner()); zi.setOwner(zenodoDeposition.getOwner());
zi.setRecord_id(zenodoDeposition.getRecord_id()); zi.setRecord_id(zenodoDeposition.getRecord_id());
zi.setRecord_url(zenodoDeposition.getRecord_url()!=null?zenodoDeposition.getRecord_url().toString():null); zi.setRecord_url(zenodoDeposition.getRecord_url() != null ? zenodoDeposition.getRecord_url().toString() : null);
zi.setState(zenodoDeposition.getState()); zi.setState(zenodoDeposition.getState());
zi.setSubmitted(zenodoDeposition.getSubmitted()); zi.setSubmitted(zenodoDeposition.getSubmitted());
zi.setTitle(zenodoDeposition.getTitle()); zi.setTitle(zenodoDeposition.getTitle());
zi.setMetadata(toZenodoMetadata(zenodoDeposition.getMetadata())); zi.setMetadata(toZenodoMetadata(zenodoDeposition.getMetadata()));
LOG.debug("Converted item: "+zi); LOG.debug("Converted item: " + zi);
return zi; return zi;
} }
/** /**
* Adds the files. * Adds the files.
* *
* @param files the files * @param files the files
* @param filesAlreadyPublished the files already published * @param filesAlreadyPublished the files already published
* @return the list * @return the list
*/ */
private static List<ZenodoFile> toZenodoFiles(ArrayList<FileDeposition> files, boolean filesAlreadyPublished) { private static List<ZenodoFile> toZenodoFiles(ArrayList<FileDeposition> files, boolean filesAlreadyPublished) {
if(files==null) if (files == null)
return null; return null;
List<ZenodoFile> listOfFiles = new ArrayList<ZenodoFile>(files.size()); List<ZenodoFile> listOfFiles = new ArrayList<ZenodoFile>(files.size());
for (FileDeposition fileDeposition : files) { for (FileDeposition fileDeposition : files) {
listOfFiles.add(toZenodoFile(fileDeposition, filesAlreadyPublished)); listOfFiles.add(toZenodoFile(fileDeposition, filesAlreadyPublished));
} }
return listOfFiles; return listOfFiles;
} }
/** /**
* To zenodo files. * To zenodo files.
* *
* @param filteredResources the filtered resources * @param filteredResources the filtered resources
* @param filesAlreadyPublished the files already published * @param filesAlreadyPublished the files already published
* @return the list * @return the list
*/ */
public static List<ZenodoFile> toZenodoFiles(List<CkanResource> filteredResources, boolean filesAlreadyPublished) { public static List<ZenodoFile> toZenodoFiles(List<CkanResource> filteredResources, boolean filesAlreadyPublished) {
if(filteredResources==null) if (filteredResources == null)
return null; return null;
List<ZenodoFile> listOfFiles = new ArrayList<ZenodoFile>(filteredResources.size()); List<ZenodoFile> listOfFiles = new ArrayList<ZenodoFile>(filteredResources.size());
for (CkanResource ckanResource : filteredResources) { for (CkanResource ckanResource : filteredResources) {
listOfFiles.add(toZenodoFile(ckanResource,filesAlreadyPublished)); listOfFiles.add(toZenodoFile(ckanResource, filesAlreadyPublished));
} }
return listOfFiles; return listOfFiles;
} }
/** /**
* To zenodo file. * To zenodo file.
* *
* @param fileDeposition the file deposition * @param fileDeposition the file deposition
* @param fileAlreadyPublished the file already published * @param fileAlreadyPublished the file already published
* @return the zenodo file * @return the zenodo file
*/ */
public static ZenodoFile toZenodoFile(FileDeposition fileDeposition, boolean fileAlreadyPublished) { public static ZenodoFile toZenodoFile(FileDeposition fileDeposition, boolean fileAlreadyPublished) {
if(fileDeposition==null) if (fileDeposition == null)
return null; return null;
ZenodoFile zf = new ZenodoFile(); ZenodoFile zf = new ZenodoFile();
zf.setId(fileDeposition.getId()); zf.setId(fileDeposition.getId());
zf.setFilename(fileDeposition.getFilename()); zf.setFilename(fileDeposition.getFilename());
zf.setFilesize(fileDeposition.getFilesize()+""); zf.setFilesize(fileDeposition.getFilesize() + "");
zf.setChecksum(fileDeposition.getChecksum()); zf.setChecksum(fileDeposition.getChecksum());
zf.setIsAlreadyPublished(fileAlreadyPublished); zf.setIsAlreadyPublished(fileAlreadyPublished);
return zf; return zf;
} }
/** /**
* To zenodo file. * To zenodo file.
* *
* @param ckanResource the ckan resource * @param ckanResource the ckan resource
* @param fileAlreadyPublished the file already published * @param fileAlreadyPublished the file already published
* @return the zenodo file * @return the zenodo file
*/ */
public static ZenodoFile toZenodoFile(CkanResource ckanResource, boolean fileAlreadyPublished) { public static ZenodoFile toZenodoFile(CkanResource ckanResource, boolean fileAlreadyPublished) {
if(ckanResource==null) if (ckanResource == null)
return null; return null;
ZenodoFile zf = new ZenodoFile(); ZenodoFile zf = new ZenodoFile();
zf.setId(ckanResource.getId()); zf.setId(ckanResource.getId());
zf.setFilename(ckanResource.getName()); zf.setFilename(ckanResource.getName());
@ -182,70 +176,72 @@ public class ItemToZenodoConverter {
zf.setIsAlreadyPublished(fileAlreadyPublished); zf.setIsAlreadyPublished(fileAlreadyPublished);
return zf; return zf;
} }
/** /**
* To zenodo metadata. * To zenodo metadata.
* *
* @param depositionMetadata the deposition metadata * @param depositionMetadata the deposition metadata
* @return the zenodo metadata * @return the zenodo metadata
*/ */
public static ZenodoMetadata toZenodoMetadata(DepositionMetadata depositionMetadata){ public static ZenodoMetadata toZenodoMetadata(DepositionMetadata depositionMetadata) {
if(depositionMetadata==null) if (depositionMetadata == null)
return null; return null;
ZenodoMetadata zm = new ZenodoMetadata(); ZenodoMetadata zm = new ZenodoMetadata();
zm.setAccess_conditions(depositionMetadata.getAccess_conditions()); zm.setAccess_conditions(depositionMetadata.getAccess_conditions());
zm.setDescription(depositionMetadata.getDescription()); zm.setDescription(depositionMetadata.getDescription());
//Access Type // fixing bug #26165 on publication_date = null
zm.setPublication_date(depositionMetadata.getPublication_date());
// Access Type
AccessRights[] accessRight = null; AccessRights[] accessRight = null;
if(depositionMetadata.getAccess_right()!=null) { if (depositionMetadata.getAccess_right() != null) {
AccessRights[] theAccessRight = { depositionMetadata.getAccess_right() }; AccessRights[] theAccessRight = { depositionMetadata.getAccess_right() };
accessRight = theAccessRight; accessRight = theAccessRight;
} }
zm.setAccess_right(CkanToZenodoUtil.toSerializableEnum(accessRight, AccessRights.values())); zm.setAccess_right(CkanToZenodoUtil.toSerializableEnum(accessRight, AccessRights.values()));
//Upload Type // Upload Type
UploadType[] uploadType = null; UploadType[] uploadType = null;
if(depositionMetadata.getUpload_type()!=null) { if (depositionMetadata.getUpload_type() != null) {
UploadType[] theUploadType = { depositionMetadata.getUpload_type() }; UploadType[] theUploadType = { depositionMetadata.getUpload_type() };
uploadType = theUploadType; uploadType = theUploadType;
} }
zm.setUpload_type(CkanToZenodoUtil.toSerializableEnum(uploadType, UploadType.values())); zm.setUpload_type(CkanToZenodoUtil.toSerializableEnum(uploadType, UploadType.values()));
//Publication Type // Publication Type
PublicationType[] publicationType = null; PublicationType[] publicationType = null;
if(depositionMetadata.getPublication_type()!=null) { if (depositionMetadata.getPublication_type() != null) {
PublicationType[] thepublicationType = { depositionMetadata.getPublication_type() }; PublicationType[] thepublicationType = { depositionMetadata.getPublication_type() };
publicationType = thepublicationType; publicationType = thepublicationType;
} }
zm.setPublication_type(CkanToZenodoUtil.toSerializableEnum(publicationType, PublicationType.values())); zm.setPublication_type(CkanToZenodoUtil.toSerializableEnum(publicationType, PublicationType.values()));
//Image Type // Image Type
ImageType[] imageType = null; ImageType[] imageType = null;
if(depositionMetadata.getImage_type()!=null) { if (depositionMetadata.getImage_type() != null) {
ImageType[] theImageType = { depositionMetadata.getImage_type() }; ImageType[] theImageType = { depositionMetadata.getImage_type() };
imageType = theImageType; imageType = theImageType;
} }
zm.setImage_type(CkanToZenodoUtil.toSerializableEnum(imageType, ImageType.values())); zm.setImage_type(CkanToZenodoUtil.toSerializableEnum(imageType, ImageType.values()));
//Licenses // Licenses
List<String> selectedLicenses = null; List<String> selectedLicenses = null;
if(depositionMetadata.getLicense()!=null) { if (depositionMetadata.getLicense() != null) {
selectedLicenses = new ArrayList<String>(); selectedLicenses = new ArrayList<String>();
selectedLicenses.add(depositionMetadata.getLicense()); //NEED TO ADD ALL LICENSES selectedLicenses.add(depositionMetadata.getLicense()); // NEED TO ADD ALL LICENSES
} }
if(selectedLicenses!=null) { if (selectedLicenses != null) {
zm.setLicenseIDs(selectedLicenses); zm.setLicenseIDs(selectedLicenses);
} }
if(depositionMetadata.getEmbargo_date()!=null) { if (depositionMetadata.getEmbargo_date() != null) {
} }
zm.setKeywords(depositionMetadata.getKeywords()); zm.setKeywords(depositionMetadata.getKeywords());
zm.setCommunities(toZenodoCommunities(depositionMetadata.getCommunities())); zm.setCommunities(toZenodoCommunities(depositionMetadata.getCommunities()));
zm.setConference_acronym(depositionMetadata.getConference_acronym()); zm.setConference_acronym(depositionMetadata.getConference_acronym());
@ -255,12 +251,12 @@ public class ItemToZenodoConverter {
zm.setConference_session_part(depositionMetadata.getConference_session_part()); zm.setConference_session_part(depositionMetadata.getConference_session_part());
zm.setConference_title(depositionMetadata.getConference_title()); zm.setConference_title(depositionMetadata.getConference_title());
zm.setConference_url(depositionMetadata.getConference_url()); zm.setConference_url(depositionMetadata.getConference_url());
zm.setContributors(toZenodoContributors(depositionMetadata.getContributors())); zm.setContributors(toZenodoContributors(depositionMetadata.getContributors()));
//to manage empty or null contributors from mapping // to manage empty or null contributors from mapping
zm.setContributorsTypes(CkanToZenodoUtil.toSerializableEnum(null, Contributor.Type.values())); zm.setContributorsTypes(CkanToZenodoUtil.toSerializableEnum(null, Contributor.Type.values()));
zm.setCreators(toZenodoCreators(depositionMetadata.getCreators())); zm.setCreators(toZenodoCreators(depositionMetadata.getCreators()));
zm.setDates(toZenodoDateIntervals(depositionMetadata.getDates())); zm.setDates(toZenodoDateIntervals(depositionMetadata.getDates()));
zm.setEmbargo_date(depositionMetadata.getEmbargo_date()); zm.setEmbargo_date(depositionMetadata.getEmbargo_date());
@ -271,11 +267,10 @@ public class ItemToZenodoConverter {
zm.setTitle(depositionMetadata.getTitle()); zm.setTitle(depositionMetadata.getTitle());
zm.setVersion(depositionMetadata.getVersion()); zm.setVersion(depositionMetadata.getVersion());
zm.setNotes(depositionMetadata.getNotes()); zm.setNotes(depositionMetadata.getNotes());
return zm; return zm;
} }
/** /**
* To zenodo subjects. * To zenodo subjects.
* *
@ -283,15 +278,15 @@ public class ItemToZenodoConverter {
* @return the list * @return the list
*/ */
private static List<ZenodoSubject> toZenodoSubjects(List<Subject> subjects) { private static List<ZenodoSubject> toZenodoSubjects(List<Subject> subjects) {
if(subjects==null) if (subjects == null)
return null; return null;
List<ZenodoSubject> list = new ArrayList<ZenodoSubject>(subjects.size()); List<ZenodoSubject> list = new ArrayList<ZenodoSubject>(subjects.size());
for (Subject sub : subjects) { for (Subject sub : subjects) {
ZenodoSubject zs = new ZenodoSubject(sub.getTerm(), sub.getIdentifier(), sub.getScheme()); ZenodoSubject zs = new ZenodoSubject(sub.getTerm(), sub.getIdentifier(), sub.getScheme());
list.add(zs); list.add(zs);
} }
return list; return list;
} }
@ -302,22 +297,21 @@ public class ItemToZenodoConverter {
* @return the list * @return the list
*/ */
private static List<ZenodoRelatedIdentifier> toRelatedIdentifiers(List<RelatedIdentifier> related_identifiers) { private static List<ZenodoRelatedIdentifier> toRelatedIdentifiers(List<RelatedIdentifier> related_identifiers) {
if(related_identifiers==null) if (related_identifiers == null)
return null; return null;
List<ZenodoRelatedIdentifier> list = new ArrayList<ZenodoRelatedIdentifier>(related_identifiers.size()); List<ZenodoRelatedIdentifier> list = new ArrayList<ZenodoRelatedIdentifier>(related_identifiers.size());
for (RelatedIdentifier relatedIdentifier : related_identifiers) { for (RelatedIdentifier relatedIdentifier : related_identifiers) {
Relation[] rel = { relatedIdentifier.getRelation() }; Relation[] rel = { relatedIdentifier.getRelation() };
SerializableEnum<String> sEnum = CkanToZenodoUtil.toSerializableEnum(rel, Relation.values()); SerializableEnum<String> sEnum = CkanToZenodoUtil.toSerializableEnum(rel, Relation.values());
ZenodoRelatedIdentifier zdi = new ZenodoRelatedIdentifier(relatedIdentifier.getIdentifier(), sEnum); ZenodoRelatedIdentifier zdi = new ZenodoRelatedIdentifier(relatedIdentifier.getIdentifier(), sEnum);
list.add(zdi); list.add(zdi);
} }
return list; return list;
} }
/** /**
* To zenodo date intervals. * To zenodo date intervals.
* *
@ -325,21 +319,22 @@ public class ItemToZenodoConverter {
* @return the list * @return the list
*/ */
private static List<ZenodoDateInterval> toZenodoDateIntervals(List<DateInterval> dateIntervals) { private static List<ZenodoDateInterval> toZenodoDateIntervals(List<DateInterval> dateIntervals) {
if(dateIntervals==null) if (dateIntervals == null)
return null; return null;
List<ZenodoDateInterval> list = new ArrayList<ZenodoDateInterval>(dateIntervals.size()); List<ZenodoDateInterval> list = new ArrayList<ZenodoDateInterval>(dateIntervals.size());
for (DateInterval dateInterval : dateIntervals) { for (DateInterval dateInterval : dateIntervals) {
SerializableEnum<String> types = null; SerializableEnum<String> types = null;
if(dateInterval.getType()!=null) { if (dateInterval.getType() != null) {
DateInterval.Type[] rel = { dateInterval.getType() }; DateInterval.Type[] rel = { dateInterval.getType() };
types = CkanToZenodoUtil.toSerializableEnum(rel, DateInterval.Type.values()); types = CkanToZenodoUtil.toSerializableEnum(rel, DateInterval.Type.values());
} }
list.add(new ZenodoDateInterval(dateInterval.getStart(), dateInterval.getEnd(), types, dateInterval.getDescription())); list.add(new ZenodoDateInterval(dateInterval.getStart(), dateInterval.getEnd(), types,
dateInterval.getDescription()));
} }
return list; return list;
} }
@ -350,18 +345,18 @@ public class ItemToZenodoConverter {
* @return the list * @return the list
*/ */
public static List<ZenodoCommunity> toZenodoCommunities(List<Community> communities) { public static List<ZenodoCommunity> toZenodoCommunities(List<Community> communities) {
if(communities==null) if (communities == null)
return null; return null;
List<ZenodoCommunity> list = new ArrayList<ZenodoCommunity>(communities.size()); List<ZenodoCommunity> list = new ArrayList<ZenodoCommunity>(communities.size());
for (Community community : communities) { for (Community community : communities) {
list.add(new ZenodoCommunity(community.getIdentifier())); list.add(new ZenodoCommunity(community.getIdentifier()));
} }
return list; return list;
} }
/** /**
* To zenodo contributors. * To zenodo contributors.
* *
@ -369,10 +364,10 @@ public class ItemToZenodoConverter {
* @return the list * @return the list
*/ */
public static List<ZenodoContributor> toZenodoContributors(List<Contributor> contributors) { public static List<ZenodoContributor> toZenodoContributors(List<Contributor> contributors) {
if(contributors==null) if (contributors == null)
return null; return null;
List<ZenodoContributor> list = new ArrayList<ZenodoContributor>(contributors.size()); List<ZenodoContributor> list = new ArrayList<ZenodoContributor>(contributors.size());
for (Contributor contr : contributors) { for (Contributor contr : contributors) {
ZenodoContributor zc = new ZenodoContributor(); ZenodoContributor zc = new ZenodoContributor();
@ -381,17 +376,17 @@ public class ItemToZenodoConverter {
zc.setName(contr.getName()); zc.setName(contr.getName());
zc.setOrcid(contr.getOrcid()); zc.setOrcid(contr.getOrcid());
SerializableEnum<String> types = null; SerializableEnum<String> types = null;
if(contr.getType()!=null) { if (contr.getType() != null) {
Contributor.Type[] rel = { contr.getType() }; Contributor.Type[] rel = { contr.getType() };
types = CkanToZenodoUtil.toSerializableEnum(rel, Contributor.Type.values()); types = CkanToZenodoUtil.toSerializableEnum(rel, Contributor.Type.values());
} }
zc.setType(types); zc.setType(types);
list.add(zc); list.add(zc);
} }
return list; return list;
} }
/** /**
* To zenodo creators. * To zenodo creators.
* *
@ -399,10 +394,10 @@ public class ItemToZenodoConverter {
* @return the list * @return the list
*/ */
public static List<ZenodoCreator> toZenodoCreators(List<Creator> creators) { public static List<ZenodoCreator> toZenodoCreators(List<Creator> creators) {
if(creators==null) if (creators == null)
return null; return null;
List<ZenodoCreator> list = new ArrayList<ZenodoCreator>(creators.size()); List<ZenodoCreator> list = new ArrayList<ZenodoCreator>(creators.size());
for (Creator contr : creators) { for (Creator contr : creators) {
ZenodoCreator zc = new ZenodoCreator(); ZenodoCreator zc = new ZenodoCreator();
@ -412,11 +407,10 @@ public class ItemToZenodoConverter {
zc.setOrcid(contr.getOrcid()); zc.setOrcid(contr.getOrcid());
list.add(zc); list.add(zc);
} }
return list; return list;
} }
/** /**
* To service file deposition. * To service file deposition.
* *
@ -424,204 +418,203 @@ public class ItemToZenodoConverter {
* @return the file deposition * @return the file deposition
*/ */
public static FileDeposition toServiceFileDeposition(ZenodoFile zenodoFile) { public static FileDeposition toServiceFileDeposition(ZenodoFile zenodoFile) {
if(zenodoFile==null) if (zenodoFile == null)
return null; return null;
FileDeposition fileDep = new FileDeposition(); FileDeposition fileDep = new FileDeposition();
fileDep.setId(zenodoFile.getId()); fileDep.setId(zenodoFile.getId());
fileDep.setFilename(zenodoFile.getFilename()); fileDep.setFilename(zenodoFile.getFilename());
try { try {
fileDep.setFilesize(Integer.parseInt(zenodoFile.getFilesize())); fileDep.setFilesize(Integer.parseInt(zenodoFile.getFilesize()));
}catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
} }
fileDep.setChecksum(zenodoFile.getChecksum()); fileDep.setChecksum(zenodoFile.getChecksum());
return fileDep; return fileDep;
} }
/** /**
* Update metadata info of deposition metadata. * Update metadata info of deposition metadata.
* *
* @param metadata the metadata * @param metadata the metadata
* @param depositionMetadata the deposition metadata * @param depositionMetadata the deposition metadata
* @return the deposition metadata * @return the deposition metadata
*/ */
public static DepositionMetadata updateMetadataInfoOfDepositionMetadata(ZenodoMetadata metadata, DepositionMetadata depositionMetadata) { public static DepositionMetadata updateMetadataInfoOfDepositionMetadata(ZenodoMetadata metadata,
DepositionMetadata depositionMetadata) {
//description
// description
String description = metadata.getDescription(); String description = metadata.getDescription();
LOG.debug("Read description: "+description); LOG.debug("Read description: " + description);
if(description!=null) { if (description != null) {
depositionMetadata.setDescription(description); depositionMetadata.setDescription(description);
} }
//upload type // upload type
SerializableEnum<String> uploadType = metadata.getUpload_type(); SerializableEnum<String> uploadType = metadata.getUpload_type();
LOG.debug("Read upload type: "+uploadType); LOG.debug("Read upload type: " + uploadType);
if(uploadType!=null && uploadType.getSelectedValues()!=null) { if (uploadType != null && uploadType.getSelectedValues() != null) {
String theUploadTypeValue = uploadType.getSelectedValues().get(0); String theUploadTypeValue = uploadType.getSelectedValues().get(0);
LOG.debug("Set upload type: "+theUploadTypeValue); LOG.debug("Set upload type: " + theUploadTypeValue);
depositionMetadata.setUpload_type(UploadType.valueOf(theUploadTypeValue)); depositionMetadata.setUpload_type(UploadType.valueOf(theUploadTypeValue));
} }
//access right // access right
SerializableEnum<String> accessRight = metadata.getAccess_right(); SerializableEnum<String> accessRight = metadata.getAccess_right();
LOG.debug("Read access type: "+accessRight); LOG.debug("Read access type: " + accessRight);
if(accessRight!=null && accessRight.getSelectedValues()!=null) { if (accessRight != null && accessRight.getSelectedValues() != null) {
try { try {
String theAccessRightValue = accessRight.getSelectedValues().get(0); String theAccessRightValue = accessRight.getSelectedValues().get(0);
LOG.debug("Set access right: "+theAccessRightValue); LOG.debug("Set access right: " + theAccessRightValue);
depositionMetadata.setAccess_right(AccessRights.valueOf(theAccessRightValue)); depositionMetadata.setAccess_right(AccessRights.valueOf(theAccessRightValue));
}catch (Exception e) { } catch (Exception e) {
LOG.warn("Set access right error: ",e); LOG.warn("Set access right error: ", e);
} }
} }
//publication type // publication type
SerializableEnum<String> publicationType = metadata.getPublication_type(); SerializableEnum<String> publicationType = metadata.getPublication_type();
LOG.debug("Read publication type: "+publicationType); LOG.debug("Read publication type: " + publicationType);
if(publicationType!=null && publicationType.getSelectedValues()!=null) { if (publicationType != null && publicationType.getSelectedValues() != null) {
try { try {
String thePublicationTypeValue = publicationType.getSelectedValues().get(0); String thePublicationTypeValue = publicationType.getSelectedValues().get(0);
LOG.debug("Set publication type: "+thePublicationTypeValue); LOG.debug("Set publication type: " + thePublicationTypeValue);
depositionMetadata.setPublication_type(PublicationType.valueOf(thePublicationTypeValue)); depositionMetadata.setPublication_type(PublicationType.valueOf(thePublicationTypeValue));
}catch (Exception e) { } catch (Exception e) {
LOG.warn("Set publication type error: ",e); LOG.warn("Set publication type error: ", e);
} }
} }
//image type // image type
SerializableEnum<String> imageType = metadata.getImage_type(); SerializableEnum<String> imageType = metadata.getImage_type();
LOG.debug("Read image type: "+imageType); LOG.debug("Read image type: " + imageType);
if(imageType!=null && imageType.getSelectedValues()!=null) { if (imageType != null && imageType.getSelectedValues() != null) {
try { try {
String imageTypeValue = imageType.getSelectedValues().get(0); String imageTypeValue = imageType.getSelectedValues().get(0);
LOG.debug("Set image type: "+imageTypeValue); LOG.debug("Set image type: " + imageTypeValue);
depositionMetadata.setImage_type(ImageType.valueOf(imageTypeValue)); depositionMetadata.setImage_type(ImageType.valueOf(imageTypeValue));
}catch (Exception e) { } catch (Exception e) {
LOG.warn("Set image type error: ",e); LOG.warn("Set image type error: ", e);
} }
} }
//embargo_date // embargo_date
Date embargoDate = metadata.getEmbargo_date(); Date embargoDate = metadata.getEmbargo_date();
LOG.debug("Read embargo date: "+imageType); LOG.debug("Read embargo date: " + imageType);
if(embargoDate!=null) { if (embargoDate != null) {
try { try {
LOG.debug("Set embargo date: "+embargoDate); LOG.debug("Set embargo date: " + embargoDate);
depositionMetadata.setEmbargo_date(embargoDate); depositionMetadata.setEmbargo_date(embargoDate);
}catch (Exception e) { } catch (Exception e) {
LOG.warn("Set embargo date error: ",e); LOG.warn("Set embargo date error: ", e);
} }
} }
//access conditions // access conditions
String accessConditions = metadata.getAccess_conditions(); String accessConditions = metadata.getAccess_conditions();
LOG.debug("Read access conditions: "+accessConditions); LOG.debug("Read access conditions: " + accessConditions);
if(accessConditions!=null) { if (accessConditions != null) {
LOG.debug("Set access conditions: "+accessConditions); LOG.debug("Set access conditions: " + accessConditions);
depositionMetadata.setAccess_conditions(accessConditions); depositionMetadata.setAccess_conditions(accessConditions);
} }
//license // license
List<String> licenses = metadata.getLicenseIDs(); List<String> licenses = metadata.getLicenseIDs();
LOG.debug("Read licenses: "+licenses); LOG.debug("Read licenses: " + licenses);
if(licenses!=null && licenses.size()>0) { if (licenses != null && licenses.size() > 0) {
try { try {
String lB = licenses.get(0); String lB = licenses.get(0);
LOG.debug("Set license: "+lB); LOG.debug("Set license: " + lB);
depositionMetadata.setLicense(lB); depositionMetadata.setLicense(lB);
}catch (Exception e) { } catch (Exception e) {
LOG.warn("Set license error: ",e); LOG.warn("Set license error: ", e);
} }
} }
//creators // creators
List<Creator> creators = null; List<Creator> creators = null;
List<? extends ZenodoAuthor> zenodoCreators = metadata.getCreators(); List<? extends ZenodoAuthor> zenodoCreators = metadata.getCreators();
LOG.debug("Read Creators: "+zenodoCreators); LOG.debug("Read Creators: " + zenodoCreators);
if(zenodoCreators!=null) { if (zenodoCreators != null) {
creators = toCreators(zenodoCreators); creators = toCreators(zenodoCreators);
} }
LOG.debug("Set Creators: "+creators); LOG.debug("Set Creators: " + creators);
depositionMetadata.setCreators(creators); depositionMetadata.setCreators(creators);
//contributors // contributors
List<Contributor> contributors = null; List<Contributor> contributors = null;
List<? extends ZenodoAuthor> zenodoContributors = metadata.getContributors(); List<? extends ZenodoAuthor> zenodoContributors = metadata.getContributors();
LOG.debug("Read Contributors: "+zenodoContributors); LOG.debug("Read Contributors: " + zenodoContributors);
if(zenodoContributors!=null) { if (zenodoContributors != null) {
contributors = toContributors(zenodoContributors); contributors = toContributors(zenodoContributors);
} }
if(LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
for (Contributor contributor : contributors) { for (Contributor contributor : contributors) {
LOG.debug("Set contributor: name "+contributor.getName() + " type "+contributor.getType()); LOG.debug("Set contributor: name " + contributor.getName() + " type " + contributor.getType());
} }
} }
depositionMetadata.setContributors(contributors); depositionMetadata.setContributors(contributors);
//keywords // keywords
depositionMetadata.setKeywords(metadata.getKeywords()); depositionMetadata.setKeywords(metadata.getKeywords());
return depositionMetadata; return depositionMetadata;
} }
/** /**
* To creators. * To creators.
* *
* @param zenodoCreators the zenodo creators * @param zenodoCreators the zenodo creators
* @return the list * @return the list
*/ */
public static List<Creator> toCreators(List<? extends ZenodoAuthor> zenodoCreators){ public static List<Creator> toCreators(List<? extends ZenodoAuthor> zenodoCreators) {
if(zenodoCreators==null) if (zenodoCreators == null)
return null; return null;
List<Creator> listOfCreators = new ArrayList<>(zenodoCreators.size()); List<Creator> listOfCreators = new ArrayList<>(zenodoCreators.size());
for (ZenodoAuthor zenodoAuthor : zenodoCreators) { for (ZenodoAuthor zenodoAuthor : zenodoCreators) {
Creator creator = new Creator(); Creator creator = new Creator();
creator.setName(zenodoAuthor.getName()); creator.setName(zenodoAuthor.getName());
if(CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getAffiliation())) { if (CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getAffiliation())) {
creator.setAffiliation(zenodoAuthor.getAffiliation()); creator.setAffiliation(zenodoAuthor.getAffiliation());
} }
if(CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getGnd())) { if (CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getGnd())) {
creator.setGnd(zenodoAuthor.getGnd()); creator.setGnd(zenodoAuthor.getGnd());
} }
if(CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getOrcid())) { if (CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getOrcid())) {
creator.setOrcid(zenodoAuthor.getOrcid()); creator.setOrcid(zenodoAuthor.getOrcid());
} }
listOfCreators.add(creator); listOfCreators.add(creator);
} }
return listOfCreators; return listOfCreators;
} }
/** /**
* To contributors. * To contributors.
* *
* @param zenodoContributors the zenodo contributors * @param zenodoContributors the zenodo contributors
* @return the list * @return the list
*/ */
public static List<Contributor> toContributors(List<? extends ZenodoAuthor> zenodoContributors){ public static List<Contributor> toContributors(List<? extends ZenodoAuthor> zenodoContributors) {
if(zenodoContributors==null) if (zenodoContributors == null)
return null; return null;
List<Contributor> listOfContributors = new ArrayList<Contributor>(zenodoContributors.size()); List<Contributor> listOfContributors = new ArrayList<Contributor>(zenodoContributors.size());
for (ZenodoAuthor zenodoAuthor : zenodoContributors) { for (ZenodoAuthor zenodoAuthor : zenodoContributors) {
Contributor contributor = new Contributor(); Contributor contributor = new Contributor();
contributor.setName(zenodoAuthor.getName()); contributor.setName(zenodoAuthor.getName());
if(CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getAffiliation())) { if (CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getAffiliation())) {
contributor.setAffiliation(zenodoAuthor.getAffiliation()); contributor.setAffiliation(zenodoAuthor.getAffiliation());
} }
if(CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getGnd())) { if (CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getGnd())) {
contributor.setGnd(zenodoAuthor.getGnd()); contributor.setGnd(zenodoAuthor.getGnd());
} }
if(CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getOrcid())) { if (CkanToZenodoUtil.isNotEmpty(zenodoAuthor.getOrcid())) {
contributor.setOrcid(zenodoAuthor.getOrcid()); contributor.setOrcid(zenodoAuthor.getOrcid());
} }
Type type = null; Type type = null;
@ -629,16 +622,14 @@ public class ItemToZenodoConverter {
try { try {
theType = zenodoAuthor.getType().getSelectedValues().get(0); theType = zenodoAuthor.getType().getSelectedValues().get(0);
type = Type.valueOf(theType); type = Type.valueOf(theType);
}catch (Exception e) { } catch (Exception e) {
LOG.error("I'm not able to convert "+theType + " as value of "+Type.class.getName()); LOG.error("I'm not able to convert " + theType + " as value of " + Type.class.getName());
} }
contributor.setType(type); contributor.setType(type);
listOfContributors.add(contributor); listOfContributors.add(contributor);
} }
return listOfContributors; return listOfContributors;
} }
} }