blob: 5ef184f27f463e74b8cbd2dd4174130741813fd6 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.ibm.matos;
import java.util.ArrayList;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class MessageList {
private class Message {
@JsonProperty("value")
private String message;
@JsonProperty("timestamp")
private String commitTime;
public Message(String message) {
this.message = message;
this.commitTime = new Date().toString();
}
}
private ArrayList<Message> messages;
/**
* Constructs an instance of MessageList with the provided array of strings.
* If the array is null, the message list is only initialized.
*
* @param messages
* {String[]} Array of strings to add to the message list.
*/
public MessageList(String messages[]) {
this.messages = new ArrayList<Message>();
if (messages != null && messages.length > 0) {
for (int i = 0; i < messages.length; i++) {
push(messages[i]);
}
}
}
/**
* Constructs an instance of MessageList with the provided ArrayList of
* strings. If the ArrayList is null, the message list is only initialized.
*
* @param messages
* {String[]} Array of strings to add to the message list.
*/
public MessageList(ArrayList<String> messages) {
this.messages = new ArrayList<Message>();
if (messages != null && messages.size() > 0) {
for (String message : messages) {
push(message);
}
}
}
/**
* Constructs an empty instance of MessageList.
*/
public MessageList() {
this.messages = new ArrayList<Message>();
}
/**
* Adds a new message to the message list.
*
* @param message
* {String} The message to add to the list.
*/
public void push(String message) {
this.messages.add(new Message(message));
}
/**
* Build message list dependent on the format Message Hub requires. The
* message list is in the form: [{ "value": string, "time": timestamp },
* ...]
*
* @return {String} String representation of a JSON object.
*/
@Override
public String toString() {
try {
return new ObjectMapper().writeValueAsString(messages);
} catch (final JsonProcessingException e) {
e.printStackTrace();
return "";
}
}
}