package responses; import model.ErrorLogger; import responses.sysadmin.AddGenomeReleaseResponse; import util.AnnotationDataType; import util.ExperimentData; import util.GenomeReleaseData; import util.ProcessFeedbackData; import com.google.gson.Gson; import com.google.gson.JsonParseException; public class ResponseParser { private static Gson gson = new Gson(); public static LoginResponse parseLoginResponse(String json) { LoginResponse loginResponse; try { loginResponse = gson.fromJson(json, LoginResponse.class); } catch (JsonParseException e) { ErrorLogger.log(e); return null; } return loginResponse; } public static ExperimentData parseRetrieveExp(String json) { ExperimentData retrieveExpResponse; try { retrieveExpResponse = gson.fromJson(json, ExperimentData.class); } catch (JsonParseException e) { ErrorLogger.log(e); return null; } return retrieveExpResponse; } public static ExperimentData[] parseSearchResponse(String json) { ExperimentData[] searchResponses; try { searchResponses = gson.fromJson(json, ExperimentData[].class); } catch (JsonParseException e) { ErrorLogger.log(e); return null; } return searchResponses; } public static AnnotationDataType[] parseGetAnnotationResponse(String json) { AnnotationDataType[] annotationResponses; try { annotationResponses = gson.fromJson(json, AnnotationDataType[].class); } catch (JsonParseException e) { ErrorLogger.log(e); return null; } return annotationResponses; } public static GenomeReleaseData[] parseGetGenomeReleaseResponse(String json) { GenomeReleaseData[] genomeReleaseResponses; try { genomeReleaseResponses = gson.fromJson(json, GenomeReleaseData[].class); } catch (JsonParseException e) { ErrorLogger.log(e); // System.out.println("Could not parse json GR."); return null; } return genomeReleaseResponses; } public static AddFileToExperimentResponse parseUploadResponse(String json) { AddFileToExperimentResponse url = null; try { url = gson.fromJson(json, AddFileToExperimentResponse.class); } catch (JsonParseException e) { ErrorLogger.log(e); // TODO hantera exception CF // System.out.println("parse error"); } return url; } public static AddGenomeReleaseResponse[] parseGenomeUploadResponse( String json) { AddGenomeReleaseResponse[] urls = null; try { urls = gson.fromJson(json, AddGenomeReleaseResponse[].class); } catch (JsonParseException e) { ErrorLogger.log(e); // TODO Hantera exception CF // System.err // .println("Could not parse url response for adding genome release."); } return urls; } public static ProcessFeedbackData[] parseProcessFeedbackResponse(String json) { ProcessFeedbackData[] processFeedbackData; try { processFeedbackData = gson.fromJson(json, ProcessFeedbackData[].class); } catch (JsonParseException e) { ErrorLogger.log(e); // TODO: StackTrace ;/ e.printStackTrace(); return null; } return processFeedbackData; } // TODO: Not implemented get public static String[] getUserNamesResponse(String json) { String[] names = null; try { UserNameList list = gson.fromJson(json, UserNameList.class); names = list.getNames(); } catch (JsonParseException e) { ErrorLogger.log(e); e.printStackTrace(); } return names; } public static ErrorResponse parseErrorResponse(String json) { ErrorResponse response; try { response = gson.fromJson(json, ErrorResponse.class); } catch (JsonParseException e) { ErrorLogger.log(e); // TODO: StackTrace ;/ response = new ErrorResponse(); response.message = "Unknown error"; } return response; } }