package org.gcube.portlets.widgets.ckandatapublisherwidget.client; import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.DatasetMetadataBean; import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.LicensesBean; import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.ResourceBeanWrapper; import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; /** * CKAN publisher services. * @author Costantino Perciante at ISTI-CNR * (costantino.perciante@isti.cnr.it) */ @RemoteServiceRelativePath("ckanservices") public interface CKanPublisherService extends RemoteService { /** * Retrieve the list of licenses to show to the user. * @return a LicenseBean on success, null on error. */ LicensesBean getLicenses(); /** * Retrieve a partially filled bean given a folder id and its owner. * @param folderId * @param owner * @return @return a DatasetMetadataBean on success, null on error. */ DatasetMetadataBean getDatasetBean(String folderId, String owner); /** * Try to create such dataset starting from the information contained into the toCreate bean. * @param toCreate * @param isWorkspaceRequest if the call comes from the workspace * @return the sent bean full filled with the needed information */ DatasetMetadataBean createCKanDataset(DatasetMetadataBean toCreate, boolean isWorkspaceRequest); /** * Add this resource to the dataset whose id is datasetId * @param resource * @param datasetId * @param owner of the dataset */ ResourceBeanWrapper addResourceToDataset(ResourceBeanWrapper resource, String datasetId, String owner); /** * Delete this resource from the dataset with id datasetId * @param resource * @param datasetId * @param owner of the dataset * @return true on success, false otherwise */ boolean deleteResourceFromDataset(ResourceBeanWrapper resource, String owner); }