*/
public Message[] getMessages(String userId, String msgCollectionId, Set<String> fields,
List<String> msgIds, FilterOptions options)
throws SocialMessageException {
if (userId == null || msgCollectionId == null || msgIds == null) {
throw new SocialMessageException("Invalid input parameters to retrieve message");
}
Message[] messages;
List<Message> messagesList = new ArrayList<Message>();
try {
registry = getRegistry();
for (String id : msgIds) {
String messageResourcePath = SocialImplConstants.USER_REGISTRY_ROOT + userId +
SocialImplConstants.MESSAGES_PATH +
SocialImplConstants.SEPARATOR + msgCollectionId +
SocialImplConstants.SEPARATOR + id;
Resource messageResource;
if (registry.resourceExists(messageResourcePath)) {
messageResource = registry.get(messageResourcePath);
//TODO: FilterOptions
messagesList.add(getPropertiesAddedMessageOjb(messageResource, fields));
} else {
log.error("Message with specified messageId " + id +
" is not found");
}
}
if (messagesList.size() <= 0) {
// no messages found
log.error("No messages found for the user " + userId);
return null;
}
messages = new Message[messagesList.size()];
messages = messagesList.toArray(messages);
}
catch (RegistryException e) {
log.error(e.getMessage(), e);
throw new SocialMessageException(
"Error while retrieving messages for user " + userId, e);
}
return messages;
}