// Path: reyna/src/com/b2msolutions/reyna/system/Logger.java
// public class Logger {
// 
//     protected static int level = Log.INFO;
// 
//     public static void setLevel(int level)
//     {
//         Logger.level = level;
//     }
// 
//     public static int getLevel()
//     {
//         return Logger.level;
//     }
// 
//     public static int v(String tag, String msg) {
// 
//         if (!Logger.IsValid(Log.VERBOSE, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.v(tag, msg);
//     }
// 
//     public static int v(String tag, String msg, Throwable tr) {
// 
//         if (!Logger.IsValid(Log.VERBOSE, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.v(tag, msg, tr);
//     }
// 
//     public static int d(String tag, String msg) {
// 
//         if (!Logger.IsValid(Log.DEBUG, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.d(tag, msg);
//     }
// 
//     public static int d(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.DEBUG, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.d(tag, msg, tr);
//     }
// 
//     public static int i(String tag, String msg) {
//         if (!Logger.IsValid(Log.INFO, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.i(tag, msg);
//     }
// 
//     public static int i(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.INFO, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.i(tag, msg, tr);
//     }
// 
//     public static int w(String tag, String msg) {
//         if (!Logger.IsValid(Log.WARN, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.w(tag, msg);
//     }
// 
//     public static int w(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.WARN, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.w(tag, msg, tr);
//     }
// 
//     public static int w(String tag, Throwable tr) {
//         if (!Logger.IsValid(Log.WARN, tag)) {
//             return 0;
//         }
// 
//         return Log.w(tag, tr);
//     }
// 
//     public static int e(String tag, String msg) {
//         if (!Logger.IsValid(Log.ERROR, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.e(tag, msg);
//     }
// 
//     public static int e(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.ERROR, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.e(tag, msg, tr);
//     }
// 
//     private static boolean IsValid(int level, String tag, String msg) {
// 
//         if (level < Logger.getLevel()) {
//             return false;
//         }
// 
//         if (msg == null) {
//             return false;
//         }
// 
//         if (tag == null) {
//             return false;
//         }
// 
//         return true;
//     }
// 
//     private static boolean IsValid(int level, String tag) {
// 
//         if (level < Logger.getLevel()) {
//             return false;
//         }
// 
//         if (tag == null) {
//             return false;
//         }
// 
//         return true;
//     }
// }
// 
// Path: reyna/src/com/b2msolutions/reyna/system/Message.java
// public class Message implements Serializable {
//     private static final long serialVersionUID = 6230786319646630263L;
// 
//     private Long id;
// 
//     private String url;
// 
//     private String body;
// 
//     private Header[] headers;
// 
//     public Message(URI uri, String body, Header[] headers) {
//         this(null, uri, body, headers);
//     }
// 
//     public Message(Long id, URI uri, String body, Header[] headers) {
// 
//         this.id = id;
// 
//         this.url = uri.toString();
//         this.body = body;
//         this.headers = headers;
//         if(this.headers == null) {
//             this.headers = new Header[0];
//         }
//     }
// 
//     public Long getId() {
//         return this.id;
//     }
// 
//     public String getUrl() {
//         return this.url;
//     }
// 
//     public URI getURI() {
//         try {
//             return new URI(this.url);
//         } catch (URISyntaxException e) {
//             return null;
//         }
//     }
// 
//     public void addHeader(Header header) {
//         ArrayList<Header> headerList = new ArrayList<Header>(Arrays.asList(this.headers));
//         headerList.add(header);
//         this.headers = new Header[headerList.size()];
//         headerList.toArray(this.headers);
//     }
// 
//     public String getBody() {
//         return this.body;
//     }
// 
//     public Header[] getHeaders() {
//         return this.headers;
//     }
// }


import com.b2msolutions.reyna.system.Logger;
import com.b2msolutions.reyna.system.Message;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.List;
package com.b2msolutions.reyna.messageProvider;



public class Batch {

    private static String TAG = "com.b2msolutions.reyna.messageProvider.Batch";

    private final List<BatchMessage> events;

    public Batch() {
        this.events = new ArrayList<BatchMessage>();
    }

    public void add(Message message) {
        Logger.v(Batch.TAG, "add");

        BatchMessage batchMessage = new BatchMessage(message.getId(), message.getUrl(), this.getBody(message.getBody()));
        this.events.add(batchMessage);
    }

    public List<BatchMessage> getEvents() {
        return events;
    }

    public void removeLastMessage() {
        Logger.v(Batch.TAG, "removeLastMessage");

        int size = this.events.size();
        if (size > 1) {
            this.events.remove(size -1);
        }
    }
    private JsonObject getBody(String body) {
// Path: reyna/src/com/b2msolutions/reyna/system/Logger.java
// public class Logger {
// 
//     protected static int level = Log.INFO;
// 
//     public static void setLevel(int level)
//     {
//         Logger.level = level;
//     }
// 
//     public static int getLevel()
//     {
//         return Logger.level;
//     }
// 
//     public static int v(String tag, String msg) {
// 
//         if (!Logger.IsValid(Log.VERBOSE, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.v(tag, msg);
//     }
// 
//     public static int v(String tag, String msg, Throwable tr) {
// 
//         if (!Logger.IsValid(Log.VERBOSE, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.v(tag, msg, tr);
//     }
// 
//     public static int d(String tag, String msg) {
// 
//         if (!Logger.IsValid(Log.DEBUG, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.d(tag, msg);
//     }
// 
//     public static int d(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.DEBUG, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.d(tag, msg, tr);
//     }
// 
//     public static int i(String tag, String msg) {
//         if (!Logger.IsValid(Log.INFO, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.i(tag, msg);
//     }
// 
//     public static int i(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.INFO, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.i(tag, msg, tr);
//     }
// 
//     public static int w(String tag, String msg) {
//         if (!Logger.IsValid(Log.WARN, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.w(tag, msg);
//     }
// 
//     public static int w(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.WARN, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.w(tag, msg, tr);
//     }
// 
//     public static int w(String tag, Throwable tr) {
//         if (!Logger.IsValid(Log.WARN, tag)) {
//             return 0;
//         }
// 
//         return Log.w(tag, tr);
//     }
// 
//     public static int e(String tag, String msg) {
//         if (!Logger.IsValid(Log.ERROR, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.e(tag, msg);
//     }
// 
//     public static int e(String tag, String msg, Throwable tr) {
//         if (!Logger.IsValid(Log.ERROR, tag, msg)) {
//             return 0;
//         }
// 
//         return Log.e(tag, msg, tr);
//     }
// 
//     private static boolean IsValid(int level, String tag, String msg) {
// 
//         if (level < Logger.getLevel()) {
//             return false;
//         }
// 
//         if (msg == null) {
//             return false;
//         }
// 
//         if (tag == null) {
//             return false;
//         }
// 
//         return true;
//     }
// 
//     private static boolean IsValid(int level, String tag) {
// 
//         if (level < Logger.getLevel()) {
//             return false;
//         }
// 
//         if (tag == null) {
//             return false;
//         }
// 
//         return true;
//     }
// }
// 
// Path: reyna/src/com/b2msolutions/reyna/system/Message.java
// public class Message implements Serializable {
//     private static final long serialVersionUID = 6230786319646630263L;
// 
//     private Long id;
// 
//     private String url;
// 
//     private String body;
// 
//     private Header[] headers;
// 
//     public Message(URI uri, String body, Header[] headers) {
//         this(null, uri, body, headers);
//     }
// 
//     public Message(Long id, URI uri, String body, Header[] headers) {
// 
//         this.id = id;
// 
//         this.url = uri.toString();
//         this.body = body;
//         this.headers = headers;
//         if(this.headers == null) {
//             this.headers = new Header[0];
//         }
//     }
// 
//     public Long getId() {
//         return this.id;
//     }
// 
//     public String getUrl() {
//         return this.url;
//     }
// 
//     public URI getURI() {
//         try {
//             return new URI(this.url);
//         } catch (URISyntaxException e) {
//             return null;
//         }
//     }
// 
//     public void addHeader(Header header) {
//         ArrayList<Header> headerList = new ArrayList<Header>(Arrays.asList(this.headers));
//         headerList.add(header);
//         this.headers = new Header[headerList.size()];
//         headerList.toArray(this.headers);
//     }
// 
//     public String getBody() {
//         return this.body;
//     }
// 
//     public Header[] getHeaders() {
//         return this.headers;
//     }
// }


// Path: reyna/src/com/b2msolutions/reyna/messageProvider/Batch.java
import com.b2msolutions.reyna.system.Logger;
import com.b2msolutions.reyna.system.Message;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.List;

package com.b2msolutions.reyna.messageProvider;



public class Batch {

    private static String TAG = "com.b2msolutions.reyna.messageProvider.Batch";

    private final List<BatchMessage> events;

    public Batch() {
        this.events = new ArrayList<BatchMessage>();
    }

    public void add(Message message) {
        Logger.v(Batch.TAG, "add");

        BatchMessage batchMessage = new BatchMessage(message.getId(), message.getUrl(), this.getBody(message.getBody()));
        this.events.add(batchMessage);
    }

    public List<BatchMessage> getEvents() {
        return events;
    }

    public void removeLastMessage() {
        Logger.v(Batch.TAG, "removeLastMessage");

        int size = this.events.size();
        if (size > 1) {
            this.events.remove(size -1);
        }
    }
    private JsonObject getBody(String body) {
        Logger.v(Batch.TAG, "getBody");