package eu.dnetlib.social.rmi;

import javax.jws.WebParam;
import javax.jws.WebService;

import eu.dnetlib.common.rmi.BaseService;
import eu.dnetlib.social.SocialUploadable;

@WebService
public interface SocialUploaderService extends BaseService {

	/**
	 * Authenticates this uploader to the target social site with the given user information, then uploads the object.
	 * TODO: this method should return something so that we can monitor the status of the upload.
	 * 
	 * @param userName
	 *            account name
	 * @param password
	 *            account password
	 * @param object
	 *            SocialObject to upload
	 */
	public void publish(
			@WebParam(name = "userName") final String userName,
			@WebParam(name = "password") final String password,
			@WebParam(name = "object") final SocialUploadable object);

	/**
	 * Gets the name of the target social site.
	 * 
	 * @return the name of the target social site
	 */
	public String getSocialSiteName();

}
