// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/model/Message.java
// @Table(name = "Message")
// public class Message extends Model implements Serializable {
// 
//     @Column(name = "Title")
//     public String title;
// 
//     @Column(name = "Content")
//     public String content;
// 
//     @Column(name = "Time")
//     public long time;
// 
//     @Column(name = "DevKey")
//     public String devKey;
// 
//     @Column(name = "Channel")
//     public String channelName;
// 
//     @Column(name = "IconUrl")
//     public String iconUrl;
// 
//     @Column(name = "IntegrationName")
//     public String integrationName;
// 
//     @Column(name = "Url")
//     public String url;
// 
//     public Message() {
//         super();
//     }
// 
//     public Message(String devKey, String channelName, String title, String content, long time) {
//         super();
//         this.devKey = devKey;
//         this.channelName = channelName;
//         this.title = title;
//         this.content = content;
//         this.time = time;
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/source/MessageDataSource.java
// public interface MessageDataSource {
// 
//     interface LoadMessagesCallback {
// 
//         void onLoadMessages(List<Message> messages);
// 
//         void onDataNotAvailable();
//     }
// 
//     void loadMessages(@NonNull String devKey, @NonNull String channelName, int offSet,
//                       int limit, @NonNull LoadMessagesCallback callback);
// 
//     void clearMessages(@NonNull String devKey, @NonNull String channelName);
// 
// }


import android.support.annotation.NonNull;
import com.activeandroid.query.Delete;
import com.activeandroid.query.Select;
import com.jiguang.jbox.data.model.Message;
import com.jiguang.jbox.data.source.MessageDataSource;
import java.util.List;
import javax.inject.Singleton;
package com.jiguang.jbox.data.local;






@Singleton
public class MessageLocalDataSource implements MessageDataSource {

    private static MessageLocalDataSource INSTANCE;

    public MessageLocalDataSource getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new MessageLocalDataSource();
        }
        return INSTANCE;
    }

    @Override
    public void loadMessages(@NonNull String devKey, @NonNull String channelName, int offSet,
                             int limit, @NonNull LoadMessagesCallback callback) {
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/model/Message.java
// @Table(name = "Message")
// public class Message extends Model implements Serializable {
// 
//     @Column(name = "Title")
//     public String title;
// 
//     @Column(name = "Content")
//     public String content;
// 
//     @Column(name = "Time")
//     public long time;
// 
//     @Column(name = "DevKey")
//     public String devKey;
// 
//     @Column(name = "Channel")
//     public String channelName;
// 
//     @Column(name = "IconUrl")
//     public String iconUrl;
// 
//     @Column(name = "IntegrationName")
//     public String integrationName;
// 
//     @Column(name = "Url")
//     public String url;
// 
//     public Message() {
//         super();
//     }
// 
//     public Message(String devKey, String channelName, String title, String content, long time) {
//         super();
//         this.devKey = devKey;
//         this.channelName = channelName;
//         this.title = title;
//         this.content = content;
//         this.time = time;
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/source/MessageDataSource.java
// public interface MessageDataSource {
// 
//     interface LoadMessagesCallback {
// 
//         void onLoadMessages(List<Message> messages);
// 
//         void onDataNotAvailable();
//     }
// 
//     void loadMessages(@NonNull String devKey, @NonNull String channelName, int offSet,
//                       int limit, @NonNull LoadMessagesCallback callback);
// 
//     void clearMessages(@NonNull String devKey, @NonNull String channelName);
// 
// }


// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/local/MessageLocalDataSource.java
import android.support.annotation.NonNull;
import com.activeandroid.query.Delete;
import com.activeandroid.query.Select;
import com.jiguang.jbox.data.model.Message;
import com.jiguang.jbox.data.source.MessageDataSource;
import java.util.List;
import javax.inject.Singleton;

package com.jiguang.jbox.data.local;






@Singleton
public class MessageLocalDataSource implements MessageDataSource {

    private static MessageLocalDataSource INSTANCE;

    public MessageLocalDataSource getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new MessageLocalDataSource();
        }
        return INSTANCE;
    }

    @Override
    public void loadMessages(@NonNull String devKey, @NonNull String channelName, int offSet,
                             int limit, @NonNull LoadMessagesCallback callback) {
        List<Message> messageList = new Select().from(Message.class)