com.claresco.tinman.json.XapiJsonControl.java Source code

Java tutorial

Introduction

Here is the source code for com.claresco.tinman.json.XapiJsonControl.java

Source

/**
 * ClarescoExperienceAPI
 * Copyright 1999, 2014
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * Please contact Claresco, www.claresco.com, if you have any questions.
 **/

package com.claresco.tinman.json;

import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

import com.claresco.tinman.lrs.XapiAccount;
import com.claresco.tinman.lrs.XapiActivity;
import com.claresco.tinman.lrs.XapiActor;
import com.claresco.tinman.lrs.XapiPerson;
import com.claresco.tinman.lrs.XapiResult;
import com.claresco.tinman.lrs.XapiStatement;
import com.claresco.tinman.lrs.XapiStatementBatch;
import com.claresco.tinman.lrs.XapiStatementResult;
import com.claresco.tinman.servlet.XapiCredentials;
import com.claresco.tinman.servlet.XapiCredentialsList;
import com.claresco.tinman.servlet.XapiKeySecret;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import com.google.gson.stream.MalformedJsonException;

/**
 * XapiJsonControl.java
 *
 * 
 *
 *
 *
 * @author rheza
 * on Mar 28, 2014
 * 
 */

public class XapiJsonControl {

    private Gson myGson;

    /**
     * Constructor 
     *
     * Params:
     *
     *
     */
    public XapiJsonControl() {
        myGson = JsonUtility.createGson();
    }

    /**
     * Definition:
     *
     *
     * Params:
     *
     *
     */
    public XapiStatement deserializeStatement(String s) {
        return myGson.fromJson(s, XapiStatement.class);
    }

    public XapiStatementBatch deserializeStatementBatch(HttpServletRequest theRequest) throws XapiParseException {
        try {
            XapiStatementBatch theStatementBatch = myGson.fromJson(theRequest.getReader(),
                    XapiStatementBatch.class);
            return theStatementBatch;
        } catch (MalformedJsonException e) {
            //e.printStackTrace();
            throw new XapiParsingOperationProblemException("Having trouble parsing the statements : MalformedJson");
        } catch (IOException e) {
            //e.printStackTrace();
            throw new XapiParsingOperationProblemException("Having trouble parsing the statements");
        } catch (JsonSyntaxException e) {
            //e.printStackTrace();
            throw new XapiParsingOperationProblemException(
                    "Having trouble parsing the statement : Bad Json syntax");
        }
    }

    public XapiStatementBatch deserializeStatementBatch(String theStatementBatchString) throws XapiParseException {
        try {
            XapiStatementBatch theStatementBatch = myGson.fromJson(theStatementBatchString,
                    XapiStatementBatch.class);
            return theStatementBatch;
        } catch (JsonSyntaxException e) {
            //e.printStackTrace();
            throw new XapiParsingOperationProblemException(
                    "Having trouble parsing the statement : Bad Json syntax");
        }
    }

    public XapiStatement deserializeStatement(HttpServletRequest theRequest) throws XapiParseException {
        try {
            XapiStatement theStatement = myGson.fromJson(theRequest.getReader(), XapiStatement.class);
            return theStatement;
        } catch (MalformedJsonException e) {
            //e.printStackTrace();
            throw new XapiParseException("Having trouble parsing the statements : MalformedJson");
        } catch (IOException e) {
            //e.printStackTrace();
            throw new XapiParsingOperationProblemException("Having trouble parsing the statement");
        } catch (JsonSyntaxException e) {
            //e.printStackTrace();
            throw new XapiParseException("Having trouble parsing the statement : Bad Json syntax");
        }

    }

    public XapiActor deserializeActor(String theActor) throws XapiParseException {
        try {
            return myGson.fromJson(theActor, XapiActor.class);
        } catch (JsonSyntaxException e) {
            //e.printStackTrace();
            throw new XapiParseException("Having trouble parsing the actor : Bad Json syntax");
        }

    }

    public XapiActor deserializeActor(HttpServletRequest theRequest) throws XapiParseException {
        try {
            XapiActor theActor = myGson.fromJson(theRequest.getReader(), XapiActor.class);
            return theActor;
        } catch (MalformedJsonException e) {
            //e.printStackTrace();
            throw new XapiParseException("Having trouble parsing the actor : MalformedJson");
        } catch (IOException e) {
            //e.printStackTrace();
            throw new XapiParsingOperationProblemException("Having trouble parsing the actor");
        } catch (JsonSyntaxException e) {
            //e.printStackTrace();
            throw new XapiParseException("Having trouble parsing the actor : Bad Json syntax");
        }
    }

    public XapiPerson deserializePerson(String thePersonString) throws XapiParseException {
        XapiPerson thePerson = myGson.fromJson(thePersonString, XapiPerson.class);
        return thePerson;
    }

    public XapiResult deserializeResult(String theJsonResult) throws XapiParseException {
        XapiResult theResult = myGson.fromJson(theJsonResult, XapiResult.class);
        return theResult;
    }

    public XapiCredentials deserializeCredentials(BufferedReader theReader) throws XapiParseException {
        XapiCredentials theCredentials = myGson.fromJson(theReader, XapiCredentials.class);
        return theCredentials;
    }

    public XapiCredentials deserializeCredentials(String theJsonCredentials) throws XapiParseException {
        XapiCredentials theCredentials = myGson.fromJson(theJsonCredentials, XapiCredentials.class);
        return theCredentials;
    }

    public XapiCredentialsList deserialiCredentialsList(BufferedReader theReader) {
        return myGson.fromJson(theReader, XapiCredentialsList.class);
    }

    /**
     * Definition:
     *
     *
     * Params:
     *
     *
     */
    public String serializeStatement(XapiStatement theStatement) {
        return myGson.toJson(theStatement);
    }

    public String serializeStatementBatch(XapiStatementBatch theStatementBatch) {
        return myGson.toJson(theStatementBatch);
    }

    public String serializeStatementResult(XapiStatementResult theStatementResult) {
        return myGson.toJson(theStatementResult);
    }

    public String serializeActivity(XapiActivity theActivity) {
        return myGson.toJson(theActivity);
    }

    public String serializeCredentialsList(XapiCredentialsList theCredentialsList) {
        return myGson.toJson(theCredentialsList, XapiCredentialsList.class);
    }

    public String createKeySecretJson(XapiKeySecret theKeySecret) {
        JsonObject theKeySecretJson = new JsonObject();

        // Send client's login and password as a JSON
        theKeySecretJson.addProperty("login", theKeySecret.getKey());
        theKeySecretJson.addProperty("password", theKeySecret.getSecret());

        return theKeySecretJson.toString();
    }

    public static void main(String[] args) {
        XapiJsonControl theControl = new XapiJsonControl();

        ArrayList<String> theName = new ArrayList<String>();
        theName.add("Mars");
        theName.add("Mecury");

        ArrayList<XapiAccount> theAccount = new ArrayList<XapiAccount>();
        theAccount.add(new XapiAccount("homePage", "name"));

        XapiPerson theP = new XapiPerson(theName, null, null, null, theAccount);

        String personJson = theControl.myGson.toJson(theP, XapiPerson.class);

        System.out.println(personJson);

        XapiPerson theP2 = theControl.myGson.fromJson(personJson, XapiPerson.class);

        System.out.println(theP2);
    }
}