This commit is contained in:
Francesco Mangiacrapa 2020-01-13 17:48:41 +01:00
parent f115b529c5
commit 371e5c8874
13 changed files with 540 additions and 39 deletions

View File

@ -142,9 +142,9 @@ public class CkanToZendoPublisherWidget {
*/
private void submitPublishOnZenodo() {
ZenodoItem zenodoItem = null;
ZenodoItem zenodoItem = manager.getZenodoItemFromFieldsForm();
GWT.log("Publishing file: "+manager.getListFileToPublish());
GWT.log("Publishing file: "+zenodoItem.getFiles());
ckanToZenodoService.publishOnZenodo(zenodoItem, new AsyncCallback<String>() {

View File

@ -1,7 +0,0 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui;
public interface ValidateForm {
boolean isValidForm();
}

View File

@ -3,6 +3,7 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.authors;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.events.RemoveCreatorEvent;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
@ -32,6 +33,9 @@ public class CreatorView extends Composite {
@UiField
Button remove_author;
@UiField
ControlGroup cg_authors;
private HandlerManager eventBus;
@ -85,5 +89,9 @@ public class CreatorView extends Composite {
public void setField_orcid(String field_orcid) {
this.field_orcid.setValue(field_orcid);
}
public ControlGroup getControlGroup_Author() {
return cg_authors;
}
}

View File

@ -5,11 +5,14 @@ import java.util.List;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.events.RemoveCreatorEvent;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.events.RemoveCreatorEventHandler;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.ValidateForm;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.utils.InfoTextAndLabels;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.FieldUtil;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.FormValidator;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoCreator;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.constants.ControlGroupType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
@ -27,7 +30,7 @@ import com.google.gwt.user.client.ui.Widget;
*
* Dec 17, 2019
*/
public class CreatorsFormView extends Composite implements ValidateForm{
public class CreatorsFormView extends Composite implements FormValidator{
private static CreatorsFormViewUiBinder uiBinder = GWT.create(CreatorsFormViewUiBinder.class);
@ -50,8 +53,6 @@ public class CreatorsFormView extends Composite implements ValidateForm{
@UiField
Button button_add_author;
private List<ZenodoCreator> listCreators;
private List<CreatorView> listCreatorView;
/**
@ -61,7 +62,6 @@ public class CreatorsFormView extends Composite implements ValidateForm{
*/
public CreatorsFormView(List<ZenodoCreator> listCreators) {
initWidget(uiBinder.createAndBindUi(this));
this.listCreators = listCreators;
button_add_author.addClickHandler(new ClickHandler() {
@ -85,23 +85,15 @@ public class CreatorsFormView extends Composite implements ValidateForm{
}
});
addCreatorsToView();
addCreatorsToView(listCreators);
}
@Override
public boolean isValidForm() {
return false;
}
/**
* Adds the creators to view.
* @param listCreators
*/
private void addCreatorsToView() {
private void addCreatorsToView(List<ZenodoCreator> listCreators) {
if(listCreatorView==null)
listCreatorView = new ArrayList<CreatorView>();
@ -146,5 +138,58 @@ public class CreatorsFormView extends Composite implements ValidateForm{
creator.setVisibleRemoveCreator(removableCreator);
}
}
/**
* Read list of creators from view.
*
* @return the list
*/
public List<ZenodoCreator> readListOfCreatorsFromView(){
List<ZenodoCreator> listCreators = new ArrayList<ZenodoCreator>(listCreatorView.size());
for (CreatorView creatorView : listCreatorView) {
listCreators.add(new ZenodoCreator(creatorView.getField_name().getValue(), creatorView.getField_affiliation().getValue(), creatorView.getField_affiliation().getValue(), null));
}
return listCreators;
}
@Override
public boolean isValidForm() {
return validateFormFields()==null;
}
@Override
public String validateFormFields() {
for (CreatorView creatorView : listCreatorView) {
ControlGroup cgAuthor = creatorView.getControlGroup_Author();
FieldUtil.setControlGroup(cgAuthor, ControlGroupType.NONE);
String value = FieldUtil.getTextValue(creatorView.getField_name());
boolean isValid = FieldUtil.isValidValue(value);
if(!isValid) {
FieldUtil.setControlGroup(cgAuthor, ControlGroupType.ERROR);
return "The author name is required";
}
String affiliation = FieldUtil.getTextValue(creatorView.getField_affiliation());
isValid = FieldUtil.isValidValue(affiliation);
if(!isValid) {
FieldUtil.setControlGroup(cgAuthor, ControlGroupType.ERROR);
return "The author affiliation is required";
}
String orcid = FieldUtil.getTextValue(creatorView.getField_orcid());
isValid = FieldUtil.isValidValue(orcid);
if(!isValid) {
FieldUtil.setControlGroup(cgAuthor, ControlGroupType.ERROR);
return "The author ORCID is required";
}
}
return null;
}
}

View File

@ -1,11 +1,14 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.basicinformation;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.authors.CreatorsFormView;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.tags.TagsPanel;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.FieldUtil;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.FormValidator;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoCreator;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoMetadata;
@ -72,6 +75,9 @@ public class BasicInformationView extends Composite implements FormValidator {
@UiField
Alert error_alert;
@UiField
TagsPanel the_tags_panel;
// @UiField
// Pager pager;
@ -156,10 +162,23 @@ public class BasicInformationView extends Composite implements FormValidator {
ZenodoMetadata zMeta = zenodoItem.getMetadata();
if (zMeta != null) {
String title = zenodoItem.getTitle()!=null?zenodoItem.getTitle():zMeta.getTitle();
field_title.setValue(title); //Re.fill title to be sure
addValuesToListBox(field_upload_type, zMeta.getUpload_type().getSelectableValues());
selectValueToListBox(field_upload_type, zMeta.getUpload_type().getSelectableValues());
addValuesToListBox(field_publication_type, zMeta.getPublication_type().getSelectableValues());
selectValueToListBox(field_publication_type, zMeta.getPublication_type().getSelectableValues());
selectValueToListBox(field_upload_type, zMeta.getUpload_type().getSelectedValues());
if(zMeta.getPublication_type()!=null) {
addValuesToListBox(field_publication_type, zMeta.getPublication_type().getSelectableValues());
selectValueToListBox(field_publication_type, zMeta.getPublication_type().getSelectedValues());
}else
field_publication_type.setEnabled(false);
addValuesToListBox(field_access_right, zMeta.getAccess_right().getSelectableValues());
selectValueToListBox(field_access_right, zMeta.getAccess_right().getSelectedValues());
addValuesToListBox(field_license, Arrays.asList(zMeta.getLicense().getId()));
selectValueToListBox(field_license, Arrays.asList(zMeta.getLicense().getId()));
// ADDING AUTHORS
creatorsView = new CreatorsFormView(zenodoItem.getMetadata().getCreators());
@ -185,7 +204,7 @@ public class BasicInformationView extends Composite implements FormValidator {
return;
for (int i = 0; i < listValues.size(); i++) {
list.setValue(i, listValues.get(i));
list.addItem(listValues.get(i), listValues.get(i));
}
}
@ -196,6 +215,7 @@ public class BasicInformationView extends Composite implements FormValidator {
* @param values the values
*/
private void selectValueToListBox(ListBox list, List<String> values) {
GWT.log("Selecting value: "+values);
String selectValue = null;
if (values == null || values.isEmpty()) {
selectValue = null;
@ -303,6 +323,7 @@ public class BasicInformationView extends Composite implements FormValidator {
FieldUtil.setControlGroup(cgDOI, ControlGroupType.NONE);
FieldUtil.setControlGroup(cgTitle, ControlGroupType.NONE);
//Validating DOI
if (cgDOI.isVisible()) {
GWT.log("Checking doi---");
String value = getTextValue(field_doi);
@ -310,11 +331,12 @@ public class BasicInformationView extends Composite implements FormValidator {
if(!isValid) {
FieldUtil.setControlGroup(cgDOI, ControlGroupType.ERROR);
error_alert.setVisible(true);
error_alert.setText("This field is required");
error_alert.setText("This field DOI is required");
return "This field is required";
}
}
//Validating Title
if (cgTitle.isVisible()) {
GWT.log("Checking title---");
String value = getTextValue(field_title);
@ -323,10 +345,20 @@ public class BasicInformationView extends Composite implements FormValidator {
if(!isValid) {
FieldUtil.setControlGroup(cgTitle, ControlGroupType.ERROR);
error_alert.setVisible(true);
error_alert.setText("This field is required");
error_alert.setText("The field Title is required");
return "This field is required";
}
}
//Validating Authors
if(creatorsView!=null) {
String error = creatorsView.validateFormFields();
if(error!=null) {
error_alert.setVisible(true);
error_alert.setText(error);
return error;
}
}
return null;
}
@ -351,4 +383,65 @@ public class BasicInformationView extends Composite implements FormValidator {
return box.getText();
}
public CreatorsFormView getCreatorsView() {
return creatorsView;
}
/**
* Gets the list of creators.
*
* @return the list of creators
*/
public List<ZenodoCreator> getListOfCreators() {
return creatorsView.readListOfCreatorsFromView();
}
public TextBox getField_title() {
return field_title;
}
public TextBox getField_doi() {
return field_doi;
}
public Fieldset getFieldset_basic_informations() {
return fieldset_basic_informations;
}
public TextArea getField_description() {
return field_description;
}
public ListBox getField_upload_type() {
return field_upload_type;
}
public ListBox getField_access_right() {
return field_access_right;
}
public ListBox getField_license() {
return field_license;
}
public ListBox getField_publication_type() {
return field_publication_type;
}
public DateBox getField_publication_date() {
return field_publication_date;
}
public Alert getError_alert() {
return error_alert;
}
public List<String> getTags() {
return the_tags_panel.getTags();
}
}

View File

@ -62,7 +62,7 @@
</b:Controls>
</b:ControlGroup>
<ctag:TagsPanel></ctag:TagsPanel>
<ctag:TagsPanel ui:field="the_tags_panel"></ctag:TagsPanel>
<b:ControlGroup ui:field="cg_upload_type">

View File

@ -1,12 +1,17 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.BasicTabPanel;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.authors.CreatorView;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.basicinformation.BasicInformationView;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.SerializableEnum;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoCreator;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoFile;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoMetadata;
import com.google.gwt.event.shared.HandlerManager;
@ -28,6 +33,9 @@ public class Ckan2ZenodoViewManager {
private List<FormValidator> forms = new ArrayList<FormValidator>();
private BasicInformationView basicForm;
private PublishFileViewManager publishFileVM;
private ZenodoItem zenodoItem;
/**
* Instantiates a new ckan 2 zenodo view manager.
@ -43,7 +51,7 @@ public class Ckan2ZenodoViewManager {
* @return the basic tab panel
*/
public BasicTabPanel viewForPublishing(final ZenodoItem zenodoItem){
this.zenodoItem = zenodoItem;
basicTabPanel = new BasicTabPanel();
boolean isUpdate = false;
@ -85,5 +93,44 @@ public class Ckan2ZenodoViewManager {
public List<ZenodoFile> getListFileToPublish(){
return publishFileVM.getSelectedFileToZenodoPublishing();
}
/**
* Gets the zenodo item from form.
*
* @return the zenodo item from form
*/
public ZenodoItem getZenodoItemFromFieldsForm(){
//Updating Basic Information
zenodoItem.setTitle(basicForm.getField_title().getValue());
zenodoItem.setDoi(basicForm.getField_doi().getValue());
//Updating Metadata
ZenodoMetadata meta = zenodoItem.getMetadata();
meta.setDescription(basicForm.getField_description().getValue());
meta.setKeywords(basicForm.getTags()); //these are the keywords
List<ZenodoCreator> creators = basicForm.getListOfCreators();
meta.setCreators(creators);
//upload type
String uploadType = basicForm.getField_upload_type().getSelectedValue();
meta.setUpload_type(new SerializableEnum<>(Arrays.asList(uploadType), meta.getUpload_type().getSelectableValues()));
//publication type
String publicationType = basicForm.getField_publication_type().getSelectedValue();
meta.setPublication_type(new SerializableEnum<>(Arrays.asList(publicationType), meta.getPublication_type().getSelectableValues()));
//access right
String accessRight = basicForm.getField_access_right().getSelectedValue();
meta.setAccess_right(new SerializableEnum<>(Arrays.asList(accessRight), meta.getAccess_right().getSelectableValues()));
zenodoItem.setMetadata(meta);
//Updating list of file for publishing
List<ZenodoFile> publishingFile = getListFileToPublish();
zenodoItem.setFiles(publishingFile);
return zenodoItem;
}
}

View File

@ -1,10 +1,18 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view;
import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.github.gwtbootstrap.client.ui.constants.ControlGroupType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.ui.Widget;
/**
* The Class FieldUtil.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* Jan 13, 2020
*/
public class FieldUtil {
/**
@ -39,7 +47,7 @@ public class FieldUtil {
/**
* Sets the control group.
*
* @param box the box
* @param controlGroup the control group
* @param type the type
*/
public static void setControlGroup(ControlGroup controlGroup, ControlGroupType type) {
@ -52,4 +60,16 @@ public class FieldUtil {
}
}
/**
* Gets the text value.
*
* @param box the box
* @return the text value
*/
public static String getTextValue(TextBox box) {
return box.getText();
}
}

View File

@ -9,6 +9,7 @@ import org.gcube.data.publishing.ckan2zenodo.model.faults.GcatException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.InvalidItemException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.FileDeposition;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZendoPublisherWidgetConstant;
@ -17,6 +18,7 @@ import org.gcube.portlets.widgets.ckan2zenodopublisher.server.converter.ItemToZe
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoFile;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -40,9 +42,9 @@ public class CkanToZenodoPublisherServiceImpl extends RemoteServiceServlet imple
ZenodoDeposition zdPreview=loadItemPreviewFromService(zenodoItem.getName());
//(EVENTUALLY) UPDATING INFO CHANGED BY FORM ON CLIENT-SIDE
//metadata
//Basic info
zdPreview.setTitle(zenodoItem.getTitle());
//files
//Files
if(zenodoItem.getFiles()!=null) {
ArrayList<FileDeposition> listOfFiles = new ArrayList<FileDeposition>(zenodoItem.getFiles().size());
for (ZenodoFile zf : zenodoItem.getFiles()) {
@ -51,6 +53,11 @@ public class CkanToZenodoPublisherServiceImpl extends RemoteServiceServlet imple
}
zdPreview.setFiles(listOfFiles);
}
//Updating Deposition Metadata
ZenodoMetadata metadata = zenodoItem.getMetadata();
DepositionMetadata depositionMetadata = zdPreview.getMetadata();
depositionMetadata = ItemToZenodoConverter.updateMetadataInfoOfDepositionMetadata(metadata, depositionMetadata);
zdPreview.setMetadata(depositionMetadata);
//Ckan2ZenodoImpl.publish(item.getItemName());
//Eventually update values
@ -101,6 +108,7 @@ public class CkanToZenodoPublisherServiceImpl extends RemoteServiceServlet imple
//zdPreview.setFiles(toFilterFiles);
ZenodoItem zenodoItem = ItemToZenodoConverter.toZenodoItem(zdPreview);
zenodoItem.setName(item.getItemName());
LOG.debug("Returning item: "+zenodoItem);
return zenodoItem;
// //TO TEST

View File

@ -9,6 +9,8 @@ import org.gcube.data.publishing.ckan2zenodo.model.zenodo.Creator;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DateInterval;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.AccessRights;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.PublicationType;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.UploadType;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.FileDeposition;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.RelatedIdentifier;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.RelatedIdentifier.Relation;
@ -16,6 +18,7 @@ import org.gcube.data.publishing.ckan2zenodo.model.zenodo.Subject;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
import org.gcube.portlets.widgets.ckan2zenodopublisher.server.CkanToZenodoUtil;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.SerializableEnum;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.LicenseBean;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoCommunity;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoContributor;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoCreator;
@ -62,6 +65,8 @@ public class ItemToZenodoConverter {
if(zenodoDeposition==null)
return null;
LOG.debug("Converting item: "+zenodoDeposition);
ZenodoItem zi = new ZenodoItem();
zi.setId(zenodoDeposition.getId());
zi.setDoi(zenodoDeposition.getDoi());
@ -85,6 +90,8 @@ public class ItemToZenodoConverter {
zi.setMetadata(toZenodoMetadata(zenodoDeposition.getMetadata()));
LOG.debug("Converted item: "+zi);
return zi;
}
@ -122,12 +129,29 @@ public class ItemToZenodoConverter {
zm.setAccess_conditions(depositionMetadata.getAccess_conditions());
zm.setDescription(depositionMetadata.getDescription());
//Access Type
if(depositionMetadata.getAccess_right()!=null) {
AccessRights[] ar = { depositionMetadata.getAccess_right() };
SerializableEnum<String> sEnum = CkanToZenodoUtil.toSerializableEnum(ar, AccessRights.values());
zm.setAccess_right(sEnum);
}
//Upload Type
if(depositionMetadata.getUpload_type()!=null) {
UploadType[] upType = { depositionMetadata.getUpload_type() };
SerializableEnum<String> sEnum = CkanToZenodoUtil.toSerializableEnum(upType, UploadType.values());
zm.setUpload_type(sEnum);
}
//Publication Type
if(depositionMetadata.getPublication_type()!=null) {
PublicationType[] upType = { depositionMetadata.getPublication_type() };
SerializableEnum<String> sEnum = CkanToZenodoUtil.toSerializableEnum(upType, PublicationType.values());
zm.setPublication_type(sEnum);
}
zm.setLicense(new LicenseBean(depositionMetadata.getLicense(),depositionMetadata.getLicense(),null)); //HAVE TO BE RIVISITED
zm.setKeywords(depositionMetadata.getKeywords());
zm.setCommunities(toZenodoCommunities(depositionMetadata.getCommunities()));
zm.setConference_acronym(depositionMetadata.getConference_acronym());
zm.setConference_dates(depositionMetadata.getConference_dates());
@ -404,5 +428,36 @@ public class ItemToZenodoConverter {
fileDep.setChecksum(zenodoFile.getChecksum());
return fileDep;
}
/**
* Update metadata info of deposition metadata.
*
* @param metadata the metadata
* @param depositionMetadata the deposition metadata
* @return the deposition metadata
*/
public static DepositionMetadata updateMetadataInfoOfDepositionMetadata(ZenodoMetadata metadata, DepositionMetadata depositionMetadata) {
//upload type
SerializableEnum<String> uploadType = metadata.getUpload_type();
String theUploadTypeValue = uploadType.getSelectedValues().get(0);
LOG.debug("Set upload type: "+theUploadTypeValue);
depositionMetadata.setUpload_type(UploadType.valueOf(theUploadTypeValue));
//access right
SerializableEnum<String> accessRight = metadata.getAccess_right();
String theAccessRightValue = accessRight.getSelectedValues().get(0);
LOG.debug("Set access right: "+theAccessRightValue);
depositionMetadata.setAccess_right(AccessRights.valueOf(theAccessRightValue));
//publication type
SerializableEnum<String> publicationType = metadata.getPublication_type();
String thePublicationTypeValue = publicationType.getSelectedValues().get(0);
LOG.debug("Set publication type: "+thePublicationTypeValue);
depositionMetadata.setPublication_type(PublicationType.valueOf(thePublicationTypeValue));
return depositionMetadata;
}
}

View File

@ -0,0 +1,96 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped;
import java.io.Serializable;
/**
* A license bean like the ckan's one.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* Jan 13, 2020
*/
public class LicenseBean implements Serializable{
/**
*
*/
private static final long serialVersionUID = 6618784269251750489L;
private String id;
private String title;
private String url;
/**
* Instantiates a new license bean.
*/
public LicenseBean() {
super();
}
/**
* Instantiates a new license bean.
*
* @param id the id
* @param title the title
* @param url the url
*/
public LicenseBean(String id, String title, String url) {
super();
this.id = id;
this.title = title;
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
return obj.getClass().equals(this.getClass()) && ((LicenseBean)obj).getTitle().equals(this.title);
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("LicenseBean [id=");
builder.append(id);
builder.append(", title=");
builder.append(title);
builder.append(", url=");
builder.append(url);
builder.append("]");
return builder.toString();
}
}

View File

@ -271,7 +271,38 @@ public class ZenodoItem implements Serializable {
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("ZenodoItem [created=");
builder.append(created);
builder.append(", doi=");
builder.append(doi);
builder.append(", files=");
builder.append(files);
builder.append(", id=");
builder.append(id);
builder.append(", metadata=");
builder.append(metadata);
builder.append(", modified=");
builder.append(modified);
builder.append(", owner=");
builder.append(owner);
builder.append(", record_id=");
builder.append(record_id);
builder.append(", record_url=");
builder.append(record_url);
builder.append(", state=");
builder.append(state);
builder.append(", submitted=");
builder.append(submitted);
builder.append(", title=");
builder.append(title);
builder.append(", name=");
builder.append(name);
builder.append("]");
return builder.toString();
}
}

View File

@ -64,6 +64,8 @@ public class ZenodoMetadata implements Serializable{
private List<ZenodoDateInterval> dates;
private String method; //TODO html
private LicenseBean license; //TODO html
public ZenodoMetadata(){}
@ -500,6 +502,109 @@ public class ZenodoMetadata implements Serializable{
public void setMethod(String method) {
this.method = method;
}
public LicenseBean getLicense() {
return license;
}
public void setLicense(LicenseBean license) {
this.license = license;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("ZenodoMetadata [upload_type=");
builder.append(upload_type);
builder.append(", publication_type=");
builder.append(publication_type);
builder.append(", image_type=");
builder.append(image_type);
builder.append(", publication_date=");
builder.append(publication_date);
builder.append(", title=");
builder.append(title);
builder.append(", creators=");
builder.append(creators);
builder.append(", description=");
builder.append(description);
builder.append(", access_right=");
builder.append(access_right);
builder.append(", embargo_date=");
builder.append(embargo_date);
builder.append(", access_conditions=");
builder.append(access_conditions);
builder.append(", doi=");
builder.append(doi);
builder.append(", preserve_doi=");
builder.append(preserve_doi);
builder.append(", keywords=");
builder.append(keywords);
builder.append(", notes=");
builder.append(notes);
builder.append(", related_identifiers=");
builder.append(related_identifiers);
builder.append(", contributors=");
builder.append(contributors);
builder.append(", references=");
builder.append(references);
builder.append(", communities=");
builder.append(communities);
builder.append(", grants=");
builder.append(grants);
builder.append(", journal_title=");
builder.append(journal_title);
builder.append(", journal_volume=");
builder.append(journal_volume);
builder.append(", journal_issue=");
builder.append(journal_issue);
builder.append(", journal_pages=");
builder.append(journal_pages);
builder.append(", conference_title=");
builder.append(conference_title);
builder.append(", conference_acronym=");
builder.append(conference_acronym);
builder.append(", conference_dates=");
builder.append(conference_dates);
builder.append(", conference_place=");
builder.append(conference_place);
builder.append(", conference_url=");
builder.append(conference_url);
builder.append(", conference_session=");
builder.append(conference_session);
builder.append(", conference_session_part=");
builder.append(conference_session_part);
builder.append(", imprint_publisher=");
builder.append(imprint_publisher);
builder.append(", imprint_isbn=");
builder.append(imprint_isbn);
builder.append(", imprint_place=");
builder.append(imprint_place);
builder.append(", partof_title=");
builder.append(partof_title);
builder.append(", partof_pages=");
builder.append(partof_pages);
builder.append(", thesis_supervisors=");
builder.append(thesis_supervisors);
builder.append(", thesis_university=");
builder.append(thesis_university);
builder.append(", subjects=");
builder.append(subjects);
builder.append(", version=");
builder.append(version);
builder.append(", language=");
builder.append(language);
builder.append(", locations=");
builder.append(locations);
builder.append(", dates=");
builder.append(dates);
builder.append(", method=");
builder.append(method);
builder.append(", license=");
builder.append(license);
builder.append("]");
return builder.toString();
}
}