// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/ResponseEnvelope.java
// public class ResponseEnvelope<T extends IAppDotNetObject> implements IAppDotNetObject {
//     private ResponseMeta meta;
//     private T data;
// 
//     public ResponseMeta getMeta() {
//         return meta;
//     }
// 
//     public T getData() {
//         return data;
//     }
// }
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/Token.java
// public class Token implements IPageableAppDotNetObject {
//     private App app;
//     private String clientId;
//     private String[] scopes;
//     private Limits limits;
//     private Storage storage;
//     private User user;
//     private String inviteLink;
//     private String paginationId;
// 
//     public App getApp() {
//         return app;
//     }
// 
//     public String getClientId() {
//         return clientId;
//     }
// 
//     public String[] getScopes() {
//         return scopes;
//     }
// 
//     public Limits getLimits() {
//         return limits;
//     }
// 
//     public Storage getStorage() {
//         return storage;
//     }
// 
//     public User getUser() {
//         return user;
//     }
// 
//     public String getInviteLink() {
//         return inviteLink;
//     }
// 
//     @Override
//     public String getPaginationId() {
//         return paginationId;
//     }
// 
//     public static class Limits {
//         private int following;
//         private long maxFileSize;
// 
//         protected Limits() {
//         }
// 
//         public int getFollowing() {
//             return following;
//         }
// 
//         public long getMaxFileSize() {
//             return maxFileSize;
//         }
//     }
// 
//     public static class Storage {
//         private long available;
//         private long used;
// 
//         protected Storage() {
//         }
// 
//         public long getAvailable() {
//             return available;
//         }
// 
//         public long getUsed() {
//             return used;
//         }
//     }
// }


import com.alwaysallthetime.adnlib.data.ResponseEnvelope;
import com.alwaysallthetime.adnlib.data.Token;
import com.google.gson.reflect.TypeToken;
package com.alwaysallthetime.adnlib.response;


public abstract class TokenResponseHandler extends AppDotNetResponseEnvelopeHandler<Token> {
    protected TokenResponseHandler() {
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/ResponseEnvelope.java
// public class ResponseEnvelope<T extends IAppDotNetObject> implements IAppDotNetObject {
//     private ResponseMeta meta;
//     private T data;
// 
//     public ResponseMeta getMeta() {
//         return meta;
//     }
// 
//     public T getData() {
//         return data;
//     }
// }
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/Token.java
// public class Token implements IPageableAppDotNetObject {
//     private App app;
//     private String clientId;
//     private String[] scopes;
//     private Limits limits;
//     private Storage storage;
//     private User user;
//     private String inviteLink;
//     private String paginationId;
// 
//     public App getApp() {
//         return app;
//     }
// 
//     public String getClientId() {
//         return clientId;
//     }
// 
//     public String[] getScopes() {
//         return scopes;
//     }
// 
//     public Limits getLimits() {
//         return limits;
//     }
// 
//     public Storage getStorage() {
//         return storage;
//     }
// 
//     public User getUser() {
//         return user;
//     }
// 
//     public String getInviteLink() {
//         return inviteLink;
//     }
// 
//     @Override
//     public String getPaginationId() {
//         return paginationId;
//     }
// 
//     public static class Limits {
//         private int following;
//         private long maxFileSize;
// 
//         protected Limits() {
//         }
// 
//         public int getFollowing() {
//             return following;
//         }
// 
//         public long getMaxFileSize() {
//             return maxFileSize;
//         }
//     }
// 
//     public static class Storage {
//         private long available;
//         private long used;
// 
//         protected Storage() {
//         }
// 
//         public long getAvailable() {
//             return available;
//         }
// 
//         public long getUsed() {
//             return used;
//         }
//     }
// }


// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/response/TokenResponseHandler.java
import com.alwaysallthetime.adnlib.data.ResponseEnvelope;
import com.alwaysallthetime.adnlib.data.Token;
import com.google.gson.reflect.TypeToken;

package com.alwaysallthetime.adnlib.response;


public abstract class TokenResponseHandler extends AppDotNetResponseEnvelopeHandler<Token> {
    protected TokenResponseHandler() {
        super(new TypeToken<ResponseEnvelope<Token>>(){});