/*
* Copyright (c) 2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed 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 org.wso2.carbon.registry.social.api.message;
import org.wso2.carbon.registry.social.api.utils.EnumUtil;
import org.wso2.carbon.registry.social.api.people.userprofile.model.Url;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* This interface represents Message Collection
*/
public interface MessageCollection {
public String OUTBOX = "@outbox";
public String ALL = "@all";
/**
* An enumeration of field names in a message.
*/
public static enum Field {
ID("id"),
/**
* the field name for the title of this message collection.
*/
TITLE("title"),
/**
* the field name for total number of messages.
*/
TOTAL("total"),
/**
* the field name for the total number of unread messages
*/
UNREAD("unread"),
/**
* The field name for the updated time stamp
*/
UPDATED("updated");
/**
* the name of the field.
*/
private final String jsonString;
public static final Set<String> ALL_FIELDS = EnumUtil.getEnumStrings(Field.values());
/**
* Create a field based on a name.
*
* @param jsonString the name of the field
*/
private Field(String jsonString) {
this.jsonString = jsonString;
}
/**
* @return a string representation of the enum.
*/
@Override
public String toString() {
return this.jsonString;
}
}
/**
* Gets the unique ID of the message collection.
*
* @return the ID of the message
*/
String getId();
/**
* Sets the unique ID of the message collection.
*
* @param id the ID value to set
*/
void setId(String id);
/**
* Gets the title of the message collection.
*
* @return the title of the message
*/
String getTitle();
/**
* Sets the title of the message message collection.
*
* @param newTitle the title of the message
*/
void setTitle(String newTitle);
/**
* Gets the total number of messages for this collection.
*
* @return the total number of messages
*/
Integer getTotal();
/**
* Sets the total number of messages for this collection
*
* @param total the total number of messages
*/
void setTotal(Integer total);
/**
* Gets the total number of unread messages.
*
* @return the total number of unread messages
*/
Integer getUnread();
/**
* Sets the total number of unread messages.
*
* @param unread the number of unread messages
*/
void setUnread(Integer unread);
/**
* Returns the last time this message collection was modified.
*
* @return the updated time
*/
Date getUpdated();
/**
* Sets the updated time for this message collection.
*
* @param updated
*/
void setUpdated(Date updated);
/**
* Get the URLs related to the message collection.
*
* @return the URLs related to the message collection
*/
List<Url> getUrls();
/**
* Set the URLs related to the message collection
*
* @param urls the URLs related to the message collection
*/
void setUrls(List<Url> urls);
}