package br.com.developer.redu;
import br.com.developer.redu.models.*;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import org.scribe.model.Token;
/**
* @author igor Classe que faz uma implementação concreta do Wrapper. Herda do
* ReduClient que fez a implementação das requisições. Objetivo dessa classe é
* servir como um Factory dos modelos. Aqui são definidos os parametros do
* ReduClient e o seus respectivos tipos no initTypes.
*/
public class DefaultReduClient extends ReduClient<Course, Enrollment, Environment, Space, Subject, User, Status, ChatMessage, Chat, Lecture> {
public DefaultReduClient(String consumerKey, String consumerSecret) {
super(consumerKey, consumerSecret);
}
public DefaultReduClient(String consumerKey, String consumerSecret, String pin) {
super(consumerKey, consumerSecret, pin);
}
public DefaultReduClient(String consumerKey, String consumerSecret, Token accessToken) {
super(consumerKey, consumerSecret, accessToken);
}
@Override
protected void initTypes() {
super.userClass = User.class;
super.userList = new TypeToken<List<User>>() {
}.getType();
super.subjectClass = Subject.class;
super.subjectList = new TypeToken<List<Subject>>() {
}.getType();
super.enrollmentClass = Enrollment.class;
super.enrollmentList = new TypeToken<List<Enrollment>>() {
}.getType();
super.courseClass = Course.class;
super.courseList = new TypeToken<List<Course>>() {
}.getType();
super.spaceClass = Space.class;
super.spaceList = new TypeToken<List<Space>>() {
}.getType();
super.statusList = new TypeToken<List<Status>>() {
}.getType();
super.statusClass = Status.class;
super.environmentClass = Environment.class;
super.chatMessageClass = ChatMessage.class;
super.chatMessageList = new TypeToken<List<ChatMessage>>() {
}.getType();
super.chatClass = Chat.class;
super.chatList = new TypeToken<List<Chat>>() {
}.getType();
super.lectureClass = Lecture.class;
super.lectureList = new TypeToken<List<Lecture>>() {
}.getType();
}
}