/** * Copyright (c) 1999, 2014 Claresco Corporation, Berkeley, California. All rights reserved. * * * XapiServletUtility.java May 13, 2014 * * Copyright 2014 Claresco Corporation, Berkeley, CA 94704. All Rights Reserved. * * This software is the proprietary information of Claresco Corporation. * Use is subject to license terms. * * Author : Rheza * */ package com.claresco.tinman.servlet; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Set; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.codec.binary.Base64; import com.claresco.tinman.sql.XapiSQLControl; import com.google.gson.JsonArray; import com.google.gson.JsonPrimitive; import com.sun.corba.se.spi.orbutil.fsm.Guard.Result; /** * XapiServletUtility * @author Rheza * * Description: * * * Status: * * */ public abstract class XapiServletUtility { /** * * Definition: * Splitting the URL array based on forward slash * * Params: * * */ protected static String[] getRequestURLArray(HttpServletRequest req){ String theURL = req.getRequestURI(); String[] urlArray; if(theURL.endsWith("/")){ urlArray = theURL.substring(0, theURL.length()-2).split("/"); }else{ urlArray = theURL.split("/"); } String[] returnURL = new String[urlArray.length-1]; for(int i =1; i < urlArray.length; i++){ returnURL[i-1] = urlArray[i]; } return returnURL; } protected static boolean checkAPI(String theAPI, String theSupposedAPI){ return theAPI.equalsIgnoreCase(theSupposedAPI); } protected static boolean checkAction(String theAction, String theSupposedAction){ return theAction != null && theAction.equalsIgnoreCase(theSupposedAction); } protected static String getStringFromReader(BufferedReader theReader) throws XapiServletOperationProblemException{ int c; StringBuffer theStringBuffer = new StringBuffer(); try{ while((c = theReader.read()) != -1){ theStringBuffer.append((char) c); } String s = theStringBuffer.toString(); return theStringBuffer.toString(); }catch(IOException e){ throw new XapiServletOperationProblemException("Having problem reading the document"); } } protected static BufferedReader getReader(HttpServletRequest req) throws XapiServletOperationProblemException{ try{ return req.getReader(); }catch(IOException e){ throw new XapiServletOperationProblemException("Having problem reading the request"); } } protected static PrintWriter getWriter(HttpServletResponse resp) throws XapiServletOperationProblemException{ try{ return resp.getWriter(); }catch(IOException e){ throw new XapiServletOperationProblemException("Having problem writing a response"); } } protected static void closeConnection(Connection conn){ try{ if(conn != null){ conn.close(); } }catch(Exception e){ } } protected static void closeSQLControl(XapiSQLControl theSQLControl){ try{ if(theSQLControl != null){ theSQLControl.close(); } }catch(Exception e){ } } protected static String createJsonArray(ArrayList<String> theData){ JsonArray theArray = new JsonArray(); for(String s : theData){ theArray.add(new JsonPrimitive(s)); } return theArray.toString(); } protected static String createJsonArray(Set<String> theData){ JsonArray theArray = new JsonArray(); for(String s : theData){ theArray.add(new JsonPrimitive(s)); } return theArray.toString(); } protected static String decodeBase64(String theSecret) throws UnsupportedEncodingException{ Base64 decoder = new Base64(); byte[] decodedBytes = decoder.decodeBase64(theSecret); return new String(decodedBytes, "UTF-8"); } protected static String encodeBase64(String theSecret){ Base64 encoder = new Base64(); return encoder.encodeAsString(theSecret.getBytes()); } protected static String getOriginURL(HttpServletRequest req){ return req.getHeader("Origin"); } protected static String createHeaderString(ArrayList<String> theList){ String theResult = ""; for(String s : theList){ theResult += s + ", "; } theResult = theResult.trim(); theResult = theResult.substring(0, theResult.length()-1); return theResult; } protected static void rollBack(Connection conn){ try{ conn.rollback(); }catch(SQLException e){ } } protected static UUID validateUUID(String theUUIDString) throws XapiBadParamException{ try{ if(theUUIDString != null && !theUUIDString.isEmpty()){ return UUID.fromString(theUUIDString); }else{ throw new XapiBadParamException("Bad UUID"); } }catch(IllegalArgumentException e){ throw new XapiBadParamException("Bad UUID"); } } public static void main(String[] args) { ArrayList<String> theData = new ArrayList<String>(); theData.add("aldfjaklfja"); theData.add("duo"); System.out.println(createJsonArray(theData)); try{ System.out.println(decodeBase64("dGVzdDpwYXNzd29yZA==")); }catch(Exception e){ } String st = "Basic dGVzdDpwYXNzd29yZA=="; System.out.println(st.substring(5)); System.out.println(encodeBase64("cremebrulee#$%:Comeatmebro***")); System.out.println(createHeaderString(theData)); } }