package requests;
import gui.processing.ProcessCommand;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import javax.swing.JOptionPane;
import model.ErrorLogger;
import util.AnnotationDataValue;
public class RequestFactory {
public RequestFactory() {
}
public static LoginRequest makeLoginRequest(String username, String password) {
return new LoginRequest(username, password);
}
public static AddFileToExperiment makeAddFile(String experimentID,
String fileName, String type, String metaData, String author,
String uploader, boolean isPrivate, String grVersion) {
return new AddFileToExperiment(experimentID, fileName, type, metaData,
author, uploader, isPrivate, grVersion);
}
public static LogoutRequest makeLogoutRequest() {
return new LogoutRequest();
}
public static DownloadFileRequest makeDownloadFileRequest(String fileName) {
String urlFileName = decodeToURL(fileName);
return new DownloadFileRequest(urlFileName);
}
public static EditAnnotationRequest makeChangeAnnotationRequest(
String name, String annotation) {
return new EditAnnotationRequest(name, annotation);
}
public static ChangeAnnotationRequest makeChangeAnnotationRequest(
String id, HashMap<String, String> annotations) {
return new ChangeAnnotationRequest(id, annotations);
}
public static AddExperimentRequest makeAddExperimentRequest(
String experimentName, AnnotationDataValue[] annotations) {
return new AddExperimentRequest(experimentName, annotations);
}
public static ChangeExperimentRequest makeChangeExperimentRequest(
String experimentName, AnnotationDataValue[] annotations) {
return new ChangeExperimentRequest(experimentName, annotations);
}
public static RetrieveExperimentRequest makeRetrieveExperimentRequest(
String experimentID) {
String urlExperimentID = decodeToURL(experimentID);
return new RetrieveExperimentRequest(urlExperimentID);
}
public static RemoveExperimentRequest makeRemoveExperimentRequest(
String experimentID) {
String urlExperimentID = decodeToURL(experimentID);
return new RemoveExperimentRequest(urlExperimentID);
}
public static SearchRequest makeSearchRequest(String annotationString) {
String urlEncodedAnnotationString = annotationString;
urlEncodedAnnotationString = decodeToURL(annotationString);
return new SearchRequest(urlEncodedAnnotationString);
}
public static ProcessCommandRequest makeProcessCommandRequest(String expId,
ProcessCommand[] processCommands) {
return new ProcessCommandRequest(expId, processCommands);
}
public static AddAnnotationRequest makeAddAnnotationRequest(String name,
String[] categories, Boolean forced) {
return new AddAnnotationRequest(name, categories, forced);
}
public static RemoveAnnotationFieldRequest makeDeleteAnnotationRequest(
String annotationName) {
annotationName = decodeToURL(annotationName);
return new RemoveAnnotationFieldRequest(annotationName);
}
public static GetAnnotationRequest makeGetAnnotationRequest() {
return new GetAnnotationRequest();
}
public static GetGenomeReleasesRequest makeGetGenomeReleaseRequest() {
return new GetGenomeReleasesRequest();
}
public static RemoveGenomeReleaseRequest makeRemoveGenomeReleaseRequest(
String specie, String version) {
return new RemoveGenomeReleaseRequest(specie, version);
}
public static RenameAnnotationFieldRequest makeRenameAnnotationFieldRequest(
String oldName, String newName) {
return new RenameAnnotationFieldRequest(oldName, newName);
}
public static RenameAnnotationValueRequest makeRenameAnnotationValueRequest(
String name, String oldValue, String newValue) {
return new RenameAnnotationValueRequest(name, oldValue, newValue);
}
public static RemoveAnnotationValueRequest makeRemoveAnnotationValueRequest(
String annotationName, String valueName) {
annotationName = decodeToURL(annotationName);
valueName = decodeToURL(valueName);
return new RemoveAnnotationValueRequest(annotationName, valueName);
}
protected static String decodeToURL(String string) {
try {
string = URLEncoder.encode(string, "UTF-8");
} catch (UnsupportedEncodingException e) {
ErrorLogger.log(e);
JOptionPane.showMessageDialog(null, e.getMessage());
try {
string = URLEncoder.encode(string, "ASCII");
} catch (UnsupportedEncodingException e2) {
ErrorLogger.log(e2);
e.printStackTrace();
}
}
return string;
}
public static AddNewAnnotationValueRequest makeAddNewAnnotationValueRequest(
String annotationName, String valueName) {
return new AddNewAnnotationValueRequest(annotationName, valueName);
}
public static ProcessFeedbackRequest makeProcessFeedbackRequest() {
return new ProcessFeedbackRequest();
}
public static GetGenomeSpecieReleasesRequest makeGetGenomeSpecieReleaseRequest(
String specie) {
return new GetGenomeSpecieReleasesRequest(specie);
}
public static AddGenomeReleaseRequest makeAddGenomeRelease(String[] files,
String species, String version) {
return new AddGenomeReleaseRequest(files, species, version);
}
public static RemoveFileFromExperimentRequest makeRemoveFileFromExperimentRequest(
String fileID) {
return new RemoveFileFromExperimentRequest(fileID);
}
public static AddFileFromGeoRequest makeAddFileFromGeoRequest(
String experimentID, String filename, String type, String author,
String uploader, boolean isPrivate, String grVersion, String url) {
return new AddFileFromGeoRequest(experimentID, filename, type, author,
uploader, isPrivate, grVersion, url);
}
public static CancelProcessRequest makeCancelProcessRequest(String PID) {
return new CancelProcessRequest(PID);
}
public static FileConversionRequest makeFileConversionRequest(
String fileid, String toformat) {
return new FileConversionRequest(fileid, toformat);
}
public static CreateUserRequest makeCreateUserRequest(String username,
String password, String privileges, String name, String email) {
return new CreateUserRequest(username, password, privileges, name,
email);
}
public static UpdateUserRequest makeUpdateUserRequest(String username,
String password, String privileges, String name, String email) {
return new UpdateUserRequest(username, password, privileges, name,
email);
}
public static DeleteUserRequest makeDeleteUserRequest(String User) {
return new DeleteUserRequest(User);
}
public static ChangePasswordRequest makeChangePasswordRequest(
String oldPassword, String newPassword, String name, String email) {
return new ChangePasswordRequest(oldPassword, newPassword, name, email);
}
public static GetUserNamesRequest getUserNamesRequest() {
return new GetUserNamesRequest();
}
}