/**
* 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));
}
}