2016-05-26 18:12:53 +02:00
|
|
|
package org.gcube.portlets.widgets.ckandatapublisherwidget.client;
|
|
|
|
|
2016-07-20 19:14:20 +02:00
|
|
|
import java.util.List;
|
|
|
|
|
2016-05-27 19:08:03 +02:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.DatasetMetadataBean;
|
2016-11-14 18:37:45 +01:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.GroupBean;
|
2016-05-26 18:12:53 +02:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.LicensesBean;
|
2016-07-20 19:14:20 +02:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.MetaDataProfileBean;
|
2016-11-09 19:13:39 +01:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.ResourceElementBean;
|
2016-05-26 18:12:53 +02:00
|
|
|
|
|
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* CKAN publisher services RPC.
|
2016-11-14 18:37:45 +01:00
|
|
|
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
2016-05-26 18:12:53 +02:00
|
|
|
*/
|
|
|
|
public interface CKanPublisherServiceAsync {
|
|
|
|
|
2016-06-06 17:24:52 +02:00
|
|
|
/**
|
|
|
|
* Retrieve the list of licenses to show to the user.
|
|
|
|
* @return a LicenseBean on success, <b>null</b> on error.
|
|
|
|
*/
|
2016-05-26 18:12:53 +02:00
|
|
|
void getLicenses(AsyncCallback<LicensesBean> callback);
|
|
|
|
|
2016-06-06 17:24:52 +02:00
|
|
|
/**
|
|
|
|
* Retrieve a partially filled bean given a folder id and its owner.
|
|
|
|
* @param folderId
|
|
|
|
* @return @return a DatasetMetadataBean on success, <b>null</b> on error.
|
|
|
|
*/
|
2016-09-12 17:58:50 +02:00
|
|
|
void getDatasetBean(String folderId,
|
2016-05-27 19:08:03 +02:00
|
|
|
AsyncCallback<DatasetMetadataBean> callback);
|
|
|
|
|
2016-06-06 17:24:52 +02:00
|
|
|
/**
|
|
|
|
* Try to create such dataset starting from the information contained into the toCreate bean.
|
|
|
|
* @param toCreate
|
2016-06-10 12:10:18 +02:00
|
|
|
* @return the sent bean full filled with the needed information
|
2016-06-06 17:24:52 +02:00
|
|
|
*/
|
2016-09-15 14:56:35 +02:00
|
|
|
void createCKanDataset(DatasetMetadataBean toCreate,
|
2016-06-10 12:10:18 +02:00
|
|
|
AsyncCallback<DatasetMetadataBean> callback);
|
2016-06-07 17:50:33 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Add this resource to the dataset whose id is datasetId
|
|
|
|
* @param resource
|
|
|
|
* @param datasetId
|
|
|
|
* @param callback
|
|
|
|
*/
|
2016-11-09 19:13:39 +01:00
|
|
|
void addResourceToDataset(ResourceElementBean resource, String datasetId,
|
|
|
|
AsyncCallback<ResourceElementBean> callback);
|
2016-06-08 18:31:54 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Delete this resource from the dataset with id datasetId
|
|
|
|
* @param resource
|
|
|
|
* @return <b>true</b> on success, false otherwise
|
|
|
|
*/
|
2016-11-09 19:13:39 +01:00
|
|
|
void deleteResourceFromDataset(ResourceElementBean resource, AsyncCallback<Boolean> callback);
|
2016-06-06 17:24:52 +02:00
|
|
|
|
2016-07-20 19:14:20 +02:00
|
|
|
/**
|
|
|
|
* Retrieve the list of profiles for a given organization name .
|
|
|
|
* @return a List<MetaDataProfileBean> on success, <b>null</b> on error.
|
|
|
|
*/
|
|
|
|
void getProfiles(String orgName, AsyncCallback<List<MetaDataProfileBean>> callback);
|
|
|
|
|
2016-09-23 18:50:16 +02:00
|
|
|
/**
|
|
|
|
* Given the title the user wants to give to the new product to create, a check is performed
|
2016-09-26 12:15:05 +02:00
|
|
|
* to understand if a dataset with the proposed title (and so the id generated at server side) already exists
|
2016-09-23 18:50:16 +02:00
|
|
|
* @param title
|
|
|
|
* @return true if it exists, false otherwise
|
|
|
|
*/
|
|
|
|
void datasetIdAlreadyExists(String title, AsyncCallback<Boolean> callback);
|
|
|
|
|
2016-11-17 14:08:22 +01:00
|
|
|
// /**
|
|
|
|
// * Return a tree object representing the whole folder hierarchy
|
|
|
|
// * @param folderId
|
|
|
|
// * @return ResourceElementBean
|
|
|
|
// */
|
|
|
|
// void getTreeFolder(String folderId,
|
|
|
|
// AsyncCallback<ResourceElementBean> callback);
|
2016-11-09 19:13:39 +01:00
|
|
|
|
2016-11-14 18:37:45 +01:00
|
|
|
/**
|
|
|
|
* Retrieve the list of groups the user can choose to associate this product with.
|
2016-12-22 23:53:30 +01:00
|
|
|
* @param orgName retrieve the groups in the context linked to this name. If null, returns
|
|
|
|
* the one in the current context.
|
2016-11-14 18:37:45 +01:00
|
|
|
* @return a list of groups' beans
|
|
|
|
*/
|
2016-12-22 23:53:30 +01:00
|
|
|
void getUserGroups(String orgName, AsyncCallback<List<GroupBean>> callback);
|
2017-01-25 18:29:47 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The method checks if the user is a publisher or he/she doesn't have the rights to publish
|
|
|
|
* @return true if he/she can publish, false otherwise
|
|
|
|
*/
|
|
|
|
void isPublisherUser(boolean isWorkspaceRequest,
|
|
|
|
AsyncCallback<Boolean> callback);
|
2016-05-26 18:12:53 +02:00
|
|
|
}
|