Example usage for com.google.gson GsonBuilder registerTypeAdapter

List of usage examples for com.google.gson GsonBuilder registerTypeAdapter

Introduction

In this page you can find the example usage for com.google.gson GsonBuilder registerTypeAdapter.

Prototype

@SuppressWarnings({ "unchecked", "rawtypes" })
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) 

Source Link

Document

Configures Gson for custom serialization or deserialization.

Usage

From source file:edu.uoc.pelp.engine.campus.UOC.CampusConnection.java

License:Open Source License

private PersonList getCampusPersonData() {
    if (_token == null) {
        return null;
    }/*from   w w w .  ja  va  2  s .c  om*/

    String userJSON = Get("people");

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateDeserializer());

    Gson gson = gsonBuilder.create();

    return gson.fromJson(userJSON, PersonList.class);
}

From source file:edu.uoc.pelp.engine.campus.UOC.CampusConnection.java

License:Open Source License

private edu.uoc.pelp.engine.campus.UOC.vo.Person getCampusPersonData(String id) {
    if (_token == null || id == null) {
        return null;
    }/*from   ww  w.j  a v  a  2  s .  co m*/
    String userJSON = Get("people/" + id);

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateDeserializer());

    Gson gson = gsonBuilder.create();

    return gson.fromJson(userJSON, edu.uoc.pelp.engine.campus.UOC.vo.Person.class);
}

From source file:edu.uoc.pelp.engine.campus.UOC.CampusConnection.java

License:Open Source License

private ClassroomList getCampusUserSubjects() {
    if (_token == null) {
        return null;
    }//from  w  w  w .  j av a 2s  .  c o  m

    if (campusUserSubjects == null) {
        campusUserSubjects = Get("subjects");
    }

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateDeserializer());

    Gson gson = gsonBuilder.create();

    return gson.fromJson(campusUserSubjects, ClassroomList.class);
}

From source file:edu.uoc.pelp.engine.campus.UOC.CampusConnection.java

License:Open Source License

private edu.uoc.pelp.engine.campus.UOC.vo.Classroom getSubjectData(String id) {
    if (_token == null || id == null) {
        return null;
    }/*from  w  w  w . ja v  a2  s  . com*/

    String userJSON = Get("subjects/" + id);

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateDeserializer());

    Gson gson = gsonBuilder.create();

    return gson.fromJson(userJSON, edu.uoc.pelp.engine.campus.UOC.vo.Classroom.class);
}

From source file:edu.uoc.pelp.engine.campus.UOC.CampusConnection.java

License:Open Source License

@Override
public IClassroomID[] getUserClassrooms(UserRoles userRole, ISubjectID subject) throws AuthPelpException {

    if (classroomsString == null)
        classroomsString = Get("classrooms");
    log.info("classroomsString: " + classroomsString);

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateDeserializer());

    Gson gson = gsonBuilder.create();/* w  w  w  . ja  va 2s  .co  m*/

    ClassroomList classroomList = gson.fromJson(classroomsString, ClassroomList.class);
    edu.uoc.pelp.engine.campus.UOC.vo.Classroom[] classrooms = classroomList.getClassrooms();

    List<IClassroomID> lista = new ArrayList<IClassroomID>();

    if (subject != null) {
        // Filtramos por asignatura
        SubjectID subjectID = (SubjectID) subject;

        for (edu.uoc.pelp.engine.campus.UOC.vo.Classroom classroom : classrooms) {
            // comparamos solo el codigo de asignatura y el semestre
            // new SubjectID(getCode(classroom.getCode() ), new Semester( getSemester(classroom.getCode() )), classroom.getId()) )

            if (subjectID.getCode().equals(getCode(classroom.getCode()))
                    && subjectID.getSemester().equals(new Semester(getSemester(classroom.getCode())))) {
                subjectID.setDomainID(classroom.getFatherId());
                ClassroomID classroomID = new ClassroomID(subjectID, getNumAula(classroom.getCode()));

                if (userRole != null) {
                    if (userRole.compareTo(UserRoles.Student) == 0 && isStudent(classroom.getAssignments())) {
                        lista.add(classroomID);
                    }
                    if (userRole.compareTo(UserRoles.Teacher) == 0 && isTeacher(classroom.getAssignments())) {
                        lista.add(classroomID);
                    }
                    if (userRole.compareTo(UserRoles.MainTeacher) == 0
                            && isTeacher(classroom.getAssignments())) {
                        lista.add(classroomID);
                    }

                } else {
                    if (isTeacher(classroom.getAssignments()) || isStudent(classroom.getAssignments())) {
                        lista.add(classroomID);
                    }
                }
            }
        }

    } else {
        // Devolvemos todas las aulas
        for (edu.uoc.pelp.engine.campus.UOC.vo.Classroom classroom : classrooms) {
            SubjectID subjectID = new SubjectID(getCode(classroom.getCode()),
                    new Semester(getSemester(classroom.getCode())), classroom.getId());
            ClassroomID classroomID = new ClassroomID(subjectID, getNumAula(classroom.getCode()));
            if (userRole != null) {
                if (userRole.compareTo(UserRoles.Student) == 0 && isStudent(classroom.getAssignments())) {
                    lista.add(classroomID);
                }
                if (userRole.compareTo(UserRoles.Teacher) == 0 && isTeacher(classroom.getAssignments())) {
                    lista.add(classroomID);
                }
                if (userRole.compareTo(UserRoles.MainTeacher) == 0 && isTeacher(classroom.getAssignments())) {
                    lista.add(classroomID);
                }

            } else {
                if (isTeacher(classroom.getAssignments()) || isStudent(classroom.getAssignments())) {
                    lista.add(classroomID);
                }
            }
        }
    }

    IClassroomID[] retVal = new IClassroomID[lista.size()];
    lista.toArray(retVal);
    return retVal;
}

From source file:edu.uoc.pelp.engine.campus.UOC.CampusConnection.java

License:Open Source License

@Override
public Classroom getClassroomData(IClassroomID classroomID) throws AuthPelpException {
    // Get custom subject identifier
    ClassroomID classroomId = (ClassroomID) classroomID;

    SubjectID subjectId = classroomId.getSubject();

    Classroom classroom = new Classroom(classroomId);

    try {/*ww  w  .ja va 2 s .co  m*/
        if (classroomsString == null)
            classroomsString = Get("classrooms");
        log.info("classroomsString: " + classroomsString);

        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateDeserializer());

        Gson gson = gsonBuilder.create();

        ClassroomList classroomList = gson.fromJson(classroomsString, ClassroomList.class);

        String identificadorAula = null;

        if (classroomList != null) {
            edu.uoc.pelp.engine.campus.UOC.vo.Classroom[] classrooms = classroomList.getClassrooms();

            List<IClassroomID> lista = new ArrayList<IClassroomID>();

            for (edu.uoc.pelp.engine.campus.UOC.vo.Classroom classroomUOC : classrooms) {

                if (classroomUOC.getFatherId().equals(subjectId.getDomainID())) {
                    // Misma asignatura
                    if (getNumAula(classroomUOC.getCode()) == classroomId.getClassIdx().intValue()) {
                        identificadorAula = classroomUOC.getId();
                        break;
                    }
                }
            }
        }
        if (identificadorAula != null) {

            classroom.setSubjectRef(getSubjectData(subjectId));
            /*
             * Comentado por motivos de rendimiento
             * buscando por referencias parece que no se utiliza esta informacion
             * 
             * 
            */
            // Obtener estudiantes del aula
            String classroomStudentsString = Get("classrooms/" + identificadorAula + "/people/students");
            log.info("classroomStudentsString: " + classroomStudentsString);

            gsonBuilder = new GsonBuilder();

            gson = gsonBuilder.create();

            UserList studentList = gson.fromJson(classroomStudentsString, UserList.class);
            User[] users = studentList.getUsers();
            for (User user : users) {
                classroom.addStudent(new Person(new UserID(user.getId())));
            }

            //Obtener profesores del aula
            String classroomTeachersString = Get("classrooms/" + identificadorAula + "/people/teachers");
            log.info("classroomStudentsString: " + classroomStudentsString);

            gsonBuilder = new GsonBuilder();

            gson = gsonBuilder.create();

            UserList teachersList = gson.fromJson(classroomTeachersString, UserList.class);
            users = teachersList.getUsers();
            for (User user : users) {
                classroom.addTeacher(new Person(new UserID(user.getId())));
            }

        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return classroom;
}

From source file:edu.wpi.cs.wpisuitetng.modules.core.entitymanagers.ProjectManager.java

License:Open Source License

public ProjectManager(Data data) {
    this.data = data;

    // hang the custom serializer/deserializer
    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(this.project, new ProjectDeserializer());

    this.gson = builder.create();
}

From source file:edu.wpi.cs.wpisuitetng.modules.core.entitymanagers.UserManager.java

License:Open Source License

/**
 * Creates a UserManager operating on the given Data.
 *    Attaches the custom serializer and deserializers for the Gson library.
 * Determines the algorithm used to secure passwords.
 * @param data//from   www.j  a v a2s  . c o m
 */
public UserManager(Data data) {
    this.data = data;
    this.passwordHash = new Sha256Password();

    // build the custom serializer/deserializer
    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(this.user, new UserDeserializer());

    this.gson = builder.create();

}

From source file:edu.wpi.cs.wpisuitetng.modules.core.models.Project.java

License:Open Source License

/**
 * Deserializes the given JSON String into a Project's member variables
 * @return   the Project from the given JSON string representation 
 *//*from   ww w .j  a v a 2  s .c o m*/
public static Project fromJSON(String json) {
    Gson gson;
    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(Project.class, new ProjectDeserializer());

    gson = builder.create();

    return gson.fromJson(json, Project.class);
}