Created VoterRegistryMessage
VoterRegistryMessage extending the abilities of the basic message also changed the name of MessagesUtils to CollectionMessagesUtils because its suits more this class destinationvote-registry
parent
8546a347ca
commit
7734ba8c91
|
@ -10,9 +10,11 @@ import meerkat.crypto.Encryption;
|
||||||
import meerkat.protobuf.BulletinBoardAPI;
|
import meerkat.protobuf.BulletinBoardAPI;
|
||||||
import meerkat.protobuf.Crypto;
|
import meerkat.protobuf.Crypto;
|
||||||
import util.AccurateTimestamp;
|
import util.AccurateTimestamp;
|
||||||
import util.RegistryTagTypes;
|
import util.CollectionMessagesUtils;
|
||||||
|
import util.Tags;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.text.ParseException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,13 +46,13 @@ public class SimpleRegistry {
|
||||||
*/
|
*/
|
||||||
public void AddVoter(String voterID, String personalData) throws CommunicationException, IOException {
|
public void AddVoter(String voterID, String personalData) throws CommunicationException, IOException {
|
||||||
Tag.Builder idTag = Tag.newBuilder();
|
Tag.Builder idTag = Tag.newBuilder();
|
||||||
idTag.setContent(RegistryTagTypes.ID_TAG + " " + voterID);
|
idTag.setContent(Tags.ID_TAG + " " + voterID);
|
||||||
|
|
||||||
Tag.Builder voterEntryTag = Tag.newBuilder();
|
Tag.Builder voterEntryTag = Tag.newBuilder();
|
||||||
voterEntryTag.setContent(RegistryTagTypes.VOTER_ENTRY_TAG);
|
voterEntryTag.setContent(Tags.VOTER_ENTRY_TAG.toString());
|
||||||
|
|
||||||
Tag.Builder timestampTag = Tag.newBuilder();
|
Tag.Builder timestampTag = Tag.newBuilder();
|
||||||
timestampTag.setContent(RegistryTagTypes.ACTION_TIMESTAMP_TAG + " "
|
timestampTag.setContent(Tags.ACTION_TIMESTAMP_TAG + " "
|
||||||
+ AccurateTimestamp.GetCurrentTimestampString());
|
+ AccurateTimestamp.GetCurrentTimestampString());
|
||||||
|
|
||||||
BasicMessage.Builder basicMessage =
|
BasicMessage.Builder basicMessage =
|
||||||
|
@ -69,16 +71,16 @@ public class SimpleRegistry {
|
||||||
*/
|
*/
|
||||||
public void AddToGroup(String voterID, String groupID) throws CommunicationException, IOException {
|
public void AddToGroup(String voterID, String groupID) throws CommunicationException, IOException {
|
||||||
Tag.Builder idTag = Tag.newBuilder();
|
Tag.Builder idTag = Tag.newBuilder();
|
||||||
idTag.setContent(RegistryTagTypes.ID_TAG + " " + voterID);
|
idTag.setContent(Tags.ID_TAG + " " + voterID);
|
||||||
|
|
||||||
Tag.Builder groupIDTag = Tag.newBuilder();
|
Tag.Builder groupIDTag = Tag.newBuilder();
|
||||||
groupIDTag.setContent(RegistryTagTypes.GROUP_ID_TAG + " " + groupID);
|
groupIDTag.setContent(Tags.GROUP_ID_TAG + " " + groupID);
|
||||||
|
|
||||||
Tag.Builder actionTag = Tag.newBuilder();
|
Tag.Builder actionTag = Tag.newBuilder();
|
||||||
actionTag.setContent(RegistryTagTypes.GROUP_ACTION_TAG + " " + RegistryTagTypes.ADD_TO_GROUP_TAG);
|
actionTag.setContent(Tags.GROUP_ACTION_TAG + " " + Tags.ADD_TO_GROUP_TAG);
|
||||||
|
|
||||||
Tag.Builder timestampTag = Tag.newBuilder();
|
Tag.Builder timestampTag = Tag.newBuilder();
|
||||||
timestampTag.setContent(RegistryTagTypes.ACTION_TIMESTAMP_TAG + " "
|
timestampTag.setContent(Tags.ACTION_TIMESTAMP_TAG + " "
|
||||||
+AccurateTimestamp.GetCurrentTimestampString());
|
+AccurateTimestamp.GetCurrentTimestampString());
|
||||||
|
|
||||||
BasicMessage.Builder basicMessage =
|
BasicMessage.Builder basicMessage =
|
||||||
|
@ -96,16 +98,16 @@ public class SimpleRegistry {
|
||||||
*/
|
*/
|
||||||
public void RemoveFromGroup(String voterID, String groupID) throws CommunicationException, IOException {
|
public void RemoveFromGroup(String voterID, String groupID) throws CommunicationException, IOException {
|
||||||
Tag.Builder idTag = Tag.newBuilder();
|
Tag.Builder idTag = Tag.newBuilder();
|
||||||
idTag.setContent(RegistryTagTypes.ID_TAG + " " + voterID);
|
idTag.setContent(Tags.ID_TAG + " " + voterID);
|
||||||
|
|
||||||
Tag.Builder groupIDTag = Tag.newBuilder();
|
Tag.Builder groupIDTag = Tag.newBuilder();
|
||||||
groupIDTag.setContent(RegistryTagTypes.GROUP_ID_TAG + " " + groupID);
|
groupIDTag.setContent(Tags.GROUP_ID_TAG + " " + groupID);
|
||||||
|
|
||||||
Tag.Builder actionTag = Tag.newBuilder();
|
Tag.Builder actionTag = Tag.newBuilder();
|
||||||
actionTag.setContent(RegistryTagTypes.GROUP_ACTION_TAG + " " + RegistryTagTypes.REMOVE_FROM_GROUP_TAG);
|
actionTag.setContent(Tags.GROUP_ACTION_TAG + " " + Tags.REMOVE_FROM_GROUP_TAG);
|
||||||
|
|
||||||
Tag.Builder timestampTag = Tag.newBuilder();
|
Tag.Builder timestampTag = Tag.newBuilder();
|
||||||
timestampTag.setContent(RegistryTagTypes.ACTION_TIMESTAMP_TAG + " "
|
timestampTag.setContent(Tags.ACTION_TIMESTAMP_TAG + " "
|
||||||
+AccurateTimestamp.GetCurrentTimestampString());
|
+AccurateTimestamp.GetCurrentTimestampString());
|
||||||
|
|
||||||
BasicMessage.Builder basicMessage =
|
BasicMessage.Builder basicMessage =
|
||||||
|
@ -122,13 +124,13 @@ public class SimpleRegistry {
|
||||||
*/
|
*/
|
||||||
public void SetVoted(String id) throws CommunicationException, IOException {
|
public void SetVoted(String id) throws CommunicationException, IOException {
|
||||||
Tag.Builder idTag = Tag.newBuilder();
|
Tag.Builder idTag = Tag.newBuilder();
|
||||||
idTag.setContent(RegistryTagTypes.ID_TAG + " " + id);
|
idTag.setContent(Tags.ID_TAG + " " + id);
|
||||||
|
|
||||||
Tag.Builder voteAction = Tag.newBuilder();
|
Tag.Builder voteAction = Tag.newBuilder();
|
||||||
voteAction.setContent(RegistryTagTypes.VOTE_ACTION_TAG);
|
voteAction.setContent(Tags.VOTE_ACTION_TAG.toString());
|
||||||
|
|
||||||
Tag.Builder timestampTag = Tag.newBuilder();
|
Tag.Builder timestampTag = Tag.newBuilder();
|
||||||
timestampTag.setContent(RegistryTagTypes.ACTION_TIMESTAMP_TAG + " "
|
timestampTag.setContent(Tags.ACTION_TIMESTAMP_TAG + " "
|
||||||
+AccurateTimestamp.GetCurrentTimestampString());
|
+AccurateTimestamp.GetCurrentTimestampString());
|
||||||
|
|
||||||
BasicMessage.Builder basicMessage = BasicMessage.newBuilder().addTag(idTag).addTag(voteAction).addTag(timestampTag);
|
BasicMessage.Builder basicMessage = BasicMessage.newBuilder().addTag(idTag).addTag(voteAction).addTag(timestampTag);
|
||||||
|
@ -146,20 +148,16 @@ public class SimpleRegistry {
|
||||||
BulletinBoardAPI.BulletinBoardMessage.Builder bulletinBoardMessage =
|
BulletinBoardAPI.BulletinBoardMessage.Builder bulletinBoardMessage =
|
||||||
BulletinBoardAPI.BulletinBoardMessage.newBuilder();
|
BulletinBoardAPI.BulletinBoardMessage.newBuilder();
|
||||||
|
|
||||||
// signs the basic message
|
|
||||||
Crypto.RerandomizableEncryptedMessage encryptedMessage =
|
Crypto.RerandomizableEncryptedMessage encryptedMessage =
|
||||||
signatory.encrypt(basicMessage, signatory.generateRandomness(new Random()));
|
signatory.encrypt(basicMessage, signatory.generateRandomness(new Random()));
|
||||||
|
|
||||||
// creates the signature of signed basic message
|
|
||||||
Crypto.Signature.Builder messageSignature = Crypto.Signature.newBuilder();
|
Crypto.Signature.Builder messageSignature = Crypto.Signature.newBuilder();
|
||||||
messageSignature.mergeFrom(encryptedMessage);
|
messageSignature.mergeFrom(encryptedMessage);
|
||||||
|
|
||||||
// creates the unsigned basic message
|
|
||||||
BulletinBoardAPI.UnsignedBulletinBoardMessage.Builder unsignedBulletinBoardMessage =
|
BulletinBoardAPI.UnsignedBulletinBoardMessage.Builder unsignedBulletinBoardMessage =
|
||||||
BulletinBoardAPI.UnsignedBulletinBoardMessage.newBuilder();
|
BulletinBoardAPI.UnsignedBulletinBoardMessage.newBuilder();
|
||||||
unsignedBulletinBoardMessage.setData(basicMessage.toByteString());
|
unsignedBulletinBoardMessage.setData(basicMessage.toByteString());
|
||||||
|
|
||||||
// sets the signature and the byte array
|
|
||||||
bulletinBoardMessage.addSig(messageSignature);
|
bulletinBoardMessage.addSig(messageSignature);
|
||||||
|
|
||||||
bulletinBoardMessage.setMsg(unsignedBulletinBoardMessage);
|
bulletinBoardMessage.setMsg(unsignedBulletinBoardMessage);
|
||||||
|
@ -177,45 +175,15 @@ public class SimpleRegistry {
|
||||||
BulletinBoardAPI.MessageFilterList.newBuilder();
|
BulletinBoardAPI.MessageFilterList.newBuilder();
|
||||||
|
|
||||||
BulletinBoardAPI.MessageFilter.Builder idFilter =
|
BulletinBoardAPI.MessageFilter.Builder idFilter =
|
||||||
BulletinBoardAPI.MessageFilter.newBuilder().setTag(RegistryTagTypes.ID_TAG + " " + id)
|
BulletinBoardAPI.MessageFilter.newBuilder().setTag(Tags.ID_TAG + " " + id)
|
||||||
.setTag(RegistryTagTypes.GROUP_ACTION_TAG + " " + RegistryTagTypes.ADD_TO_GROUP_TAG)
|
.setTag(Tags.GROUP_ACTION_TAG + " " + Tags.ADD_TO_GROUP_TAG)
|
||||||
.setTag(RegistryTagTypes.GROUP_ACTION_TAG + " " + RegistryTagTypes.REMOVE_FROM_GROUP_TAG);
|
.setTag(Tags.GROUP_ACTION_TAG + " " + Tags.REMOVE_FROM_GROUP_TAG);
|
||||||
|
|
||||||
filters.addFilter(idFilter);
|
filters.addFilter(idFilter);
|
||||||
|
|
||||||
return communicator.readMessages(filters.build());
|
return communicator.readMessages(filters.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets all the basic messages from bulletin board messages
|
|
||||||
* @param listOfMessages
|
|
||||||
* @return List<BasicMessage> G
|
|
||||||
* @throws InvalidProtocolBufferException
|
|
||||||
*/
|
|
||||||
private List<BasicMessage> GetBasicMessagesFromBulletinBoardMessages(
|
|
||||||
List<BulletinBoardAPI.BulletinBoardMessage> listOfMessages) throws InvalidProtocolBufferException {
|
|
||||||
|
|
||||||
List<BasicMessage> basicMessages = new ArrayList<BasicMessage>();
|
|
||||||
|
|
||||||
for (BulletinBoardAPI.BulletinBoardMessage bulletinBoardMessage : listOfMessages){
|
|
||||||
BasicMessage.Builder basicMessage =
|
|
||||||
BasicMessage.newBuilder().mergeFrom(bulletinBoardMessage.getMsg().getData());
|
|
||||||
basicMessages.add(basicMessage.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
return basicMessages;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<String> GetAllGroupsIdsUserIn(List<BasicMessage> messages){
|
|
||||||
Map<String, BasicMessage> groupIdToMessage = new HashMap<String, BasicMessage>();
|
|
||||||
List<String> latestStateOfGroup = new ArrayList<String>();
|
|
||||||
|
|
||||||
for (BasicMessage message : messages) {
|
|
||||||
BasicMessage temporary = groupIdToMessage.get(message.get)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Requests all the groups that the given id voter is in
|
* Requests all the groups that the given id voter is in
|
||||||
|
@ -223,28 +191,35 @@ public class SimpleRegistry {
|
||||||
* @return list of groups ids (or names), if the method fails its empty
|
* @return list of groups ids (or names), if the method fails its empty
|
||||||
* @throws CommunicationException
|
* @throws CommunicationException
|
||||||
*/
|
*/
|
||||||
public List<String> GetGroups(String id) throws CommunicationException {
|
public List<String> GetGroups(String id) throws CommunicationException, InvalidProtocolBufferException {
|
||||||
List<BulletinBoardAPI.BulletinBoardMessage> relevantMessages = GetRelevantMessages(id);
|
List<BulletinBoardAPI.BulletinBoardMessage> relevantMessages = GetRelevantMessages(id);
|
||||||
List<String> groups = new ArrayList<String>();
|
|
||||||
|
|
||||||
|
List<BasicMessage> messages =
|
||||||
|
CollectionMessagesUtils.GetBasicMessagesFromBulletinBoardMessages(relevantMessages);
|
||||||
|
|
||||||
|
List<VoterRegistryMessage> voterRegistryMessages =
|
||||||
/**
|
CollectionMessagesUtils.ConvertToVoterRegistryMessages(messages);
|
||||||
* Retrieve all List<BulletinBoardMessage> that contains this id
|
try{
|
||||||
* creates new list of strings with the names of the group
|
Map<String, VoterRegistryMessage> groupIdToMessage =
|
||||||
* Returns the created list
|
CollectionMessagesUtils.GetLatestGroupsActions(voterRegistryMessages);
|
||||||
*/
|
return CollectionMessagesUtils.GetListOfGroupIds(groupIdToMessage);
|
||||||
|
}
|
||||||
|
catch (ParseException e)
|
||||||
|
{
|
||||||
|
// write log
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retreives list of strings that represents voter
|
* Retrieves list of strings that represents voter
|
||||||
* @param id
|
* @param id
|
||||||
* @return list of strings (empty list if the lookup failed)
|
* @return list of strings (empty list if the lookup failed)
|
||||||
* @throws CommunicationException
|
* @throws CommunicationException
|
||||||
*/
|
*/
|
||||||
public List<String> GetPersonIDDetails(String id) throws CommunicationException {
|
public List<String> GetPersonIDDetails(String id) throws CommunicationException {
|
||||||
/**
|
/**
|
||||||
* Retreive all List<BulletinBoardMessage> that contains this id
|
* Retrieve all List<BulletinBoardMessage> that contains this id
|
||||||
* search for message with the wanted personal data
|
* search for message with the wanted personal data
|
||||||
* Create list with personal data
|
* Create list with personal data
|
||||||
* return the list
|
* return the list
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
package meerkat;
|
||||||
|
|
||||||
|
import util.AccurateTimestamp;
|
||||||
|
import util.Tags;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Vladimir Eliezer Tokarev on 1/15.2016
|
||||||
|
* this class wraps BasicMessage and gives the ability to find wanted tags
|
||||||
|
*/
|
||||||
|
public class VoterRegistryMessage {
|
||||||
|
|
||||||
|
public ProtobufsMessages.BasicMessage base;
|
||||||
|
|
||||||
|
public VoterRegistryMessage(ProtobufsMessages.BasicMessage message){
|
||||||
|
base = ProtobufsMessages.BasicMessage.newBuilder().addAllTag(message.getTagList()).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the wanted tag from given basic message
|
||||||
|
* @param tagName
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public String GetWantedTagFromBasicMessage(Tags tagName){
|
||||||
|
for (ProtobufsMessages.Tag tag : base.getTagList()) {
|
||||||
|
if ( tag.getContent().contains(tagName.toString())) {
|
||||||
|
return tag.getContent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the timestamp of the tag adding
|
||||||
|
* @return Timestamp
|
||||||
|
* @throws ParseException
|
||||||
|
*/
|
||||||
|
public Timestamp GetBasicMessageActionTimestamp() throws ParseException {
|
||||||
|
for (ProtobufsMessages.Tag tag : base.getTagList()) {
|
||||||
|
if ( tag.getContent().contains(Tags.ACTION_TIMESTAMP_TAG.toString())) {
|
||||||
|
String[] tagParts = tag.getContent().split(" ");
|
||||||
|
String timestamp = tagParts[tagParts.length - 1];
|
||||||
|
return AccurateTimestamp.GetTimestampFromString(timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the given message have the ADD_TO_GROUP_TAG
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean IsGroupAdding() {
|
||||||
|
for (ProtobufsMessages.Tag tag : base.getTagList()) {
|
||||||
|
if ( tag.getContent().contains(Tags.ADD_TO_GROUP_TAG.toString())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,7 +27,7 @@ public abstract class AccurateTimestamp {
|
||||||
* @return
|
* @return
|
||||||
* @throws ParseException
|
* @throws ParseException
|
||||||
*/
|
*/
|
||||||
public static java.sql.Timestamp GetCurrentTimestampFromString(String timestamp) throws ParseException {
|
public static java.sql.Timestamp GetTimestampFromString(String timestamp) throws ParseException {
|
||||||
Date date = new SimpleDateFormat(DATE_FORMAT).parse(timestamp);
|
Date date = new SimpleDateFormat(DATE_FORMAT).parse(timestamp);
|
||||||
return new Timestamp(date.getTime());
|
return new Timestamp(date.getTime());
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
package util;
|
||||||
|
|
||||||
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
|
import meerkat.ProtobufsMessages;
|
||||||
|
import meerkat.VoterRegistryMessage;
|
||||||
|
import meerkat.protobuf.BulletinBoardAPI;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Dasha on 1/15/2016.
|
||||||
|
*/
|
||||||
|
public abstract class CollectionMessagesUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts lost of BasicMessages to VoterRegistryMessags
|
||||||
|
* @param messages list<BasicMessages>
|
||||||
|
* @return List<VoterRegistryMessage>
|
||||||
|
*/
|
||||||
|
public static List<VoterRegistryMessage> ConvertToVoterRegistryMessages(List<ProtobufsMessages.BasicMessage> messages){
|
||||||
|
List<VoterRegistryMessage> voterRegistryMessages = new ArrayList<VoterRegistryMessage>();
|
||||||
|
for (ProtobufsMessages.BasicMessage message : messages){
|
||||||
|
voterRegistryMessages.add(new VoterRegistryMessage(message));
|
||||||
|
}
|
||||||
|
return voterRegistryMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets map of GroupId to basicMessage, where the basicMessages are the last actions for those groups
|
||||||
|
* @param messages List<BasicMessages>
|
||||||
|
* @return Map<String, VoterRegistryMessage>
|
||||||
|
* @throws ParseException
|
||||||
|
*/
|
||||||
|
public static Map<String, VoterRegistryMessage> GetLatestGroupsActions(List<VoterRegistryMessage> messages) throws ParseException {
|
||||||
|
|
||||||
|
Map<String, VoterRegistryMessage> groupIdToMessage = new HashMap<String, VoterRegistryMessage>();
|
||||||
|
|
||||||
|
// iterate trough all the messages and put into the map the last updated groups actions
|
||||||
|
|
||||||
|
for (int i = 0; i < messages.size(); i++) {
|
||||||
|
String groupId = messages.get(i).GetWantedTagFromBasicMessage(Tags.GROUP_ID_TAG);
|
||||||
|
VoterRegistryMessage temp = groupIdToMessage.get(groupId);
|
||||||
|
|
||||||
|
if (temp != null) {
|
||||||
|
if (temp != messages.get(i)) {
|
||||||
|
if (temp.GetBasicMessageActionTimestamp().compareTo(messages.get(i).GetBasicMessageActionTimestamp()) < 0) {
|
||||||
|
groupIdToMessage.put(groupId, messages.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return groupIdToMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets list of groups ids of the basicMessages that carried the adding to group tag
|
||||||
|
* @param groupIdToMessage Map<String, BasicMessage>
|
||||||
|
* @return List<String>
|
||||||
|
*/
|
||||||
|
public static List<String> GetListOfGroupIds(Map<String, VoterRegistryMessage> groupIdToMessage) {
|
||||||
|
List<String> groupsIds = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (VoterRegistryMessage message : groupIdToMessage.values()) {
|
||||||
|
if (message.IsGroupAdding()) {
|
||||||
|
String groupId = message.GetWantedTagFromBasicMessage(Tags.GROUP_ID_TAG);
|
||||||
|
groupsIds.add(groupId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return groupsIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets all the basic messages from bulletin board messages
|
||||||
|
* @param listOfMessages
|
||||||
|
* @return List<BasicMessage> G
|
||||||
|
* @throws InvalidProtocolBufferException
|
||||||
|
*/
|
||||||
|
public static final List<ProtobufsMessages.BasicMessage> GetBasicMessagesFromBulletinBoardMessages(
|
||||||
|
List<BulletinBoardAPI.BulletinBoardMessage> listOfMessages) throws InvalidProtocolBufferException {
|
||||||
|
|
||||||
|
List<ProtobufsMessages.BasicMessage> basicMessages = new ArrayList<ProtobufsMessages.BasicMessage>();
|
||||||
|
|
||||||
|
for (BulletinBoardAPI.BulletinBoardMessage bulletinBoardMessage : listOfMessages){
|
||||||
|
ProtobufsMessages.BasicMessage.Builder basicMessage =
|
||||||
|
ProtobufsMessages.BasicMessage.newBuilder().mergeFrom(bulletinBoardMessage.getMsg().getData());
|
||||||
|
basicMessages.add(basicMessage.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
return basicMessages;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,51 +0,0 @@
|
||||||
package util;
|
|
||||||
|
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
|
||||||
import meerkat.ProtobufsMessages;
|
|
||||||
import meerkat.protobuf.BulletinBoardAPI;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Dasha on 1/15/2016.
|
|
||||||
*/
|
|
||||||
public abstract class MessagesUtils {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets all the basic messages from bulletin board messages
|
|
||||||
* @param listOfMessages
|
|
||||||
* @return List<BasicMessage> G
|
|
||||||
* @throws InvalidProtocolBufferException
|
|
||||||
*/
|
|
||||||
public static final List<ProtobufsMessages.BasicMessage> GetBasicMessagesFromBulletinBoardMessages(
|
|
||||||
List<BulletinBoardAPI.BulletinBoardMessage> listOfMessages) throws InvalidProtocolBufferException {
|
|
||||||
|
|
||||||
List<ProtobufsMessages.BasicMessage> basicMessages = new ArrayList<ProtobufsMessages.BasicMessage>();
|
|
||||||
|
|
||||||
for (BulletinBoardAPI.BulletinBoardMessage bulletinBoardMessage : listOfMessages){
|
|
||||||
ProtobufsMessages.BasicMessage.Builder basicMessage =
|
|
||||||
ProtobufsMessages.BasicMessage.newBuilder().mergeFrom(bulletinBoardMessage.getMsg().getData());
|
|
||||||
basicMessages.add(basicMessage.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
return basicMessages;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the wanted tag from given basic message
|
|
||||||
* @param message
|
|
||||||
* @param tagName
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public static final String GetWantedTagFromBasicMessage(ProtobufsMessages.BasicMessage message, Tags tagName){
|
|
||||||
List<ProtobufsMessages.Tag> tags = message.getTagList();
|
|
||||||
|
|
||||||
for (ProtobufsMessages.Tag tag : tags) {
|
|
||||||
if ( tag.getContent().contains(tagName.toString())) {
|
|
||||||
return tag.getContent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -4,26 +4,26 @@ package util;
|
||||||
* Created by Vladimir Eliezer Tokarev on 1/9/2016.
|
* Created by Vladimir Eliezer Tokarev on 1/9/2016.
|
||||||
* Have the tags for the registry messages
|
* Have the tags for the registry messages
|
||||||
*/
|
*/
|
||||||
public abstract class RegistryTagTypes {
|
public enum Tags {
|
||||||
|
|
||||||
private RegistryTagTypes(){}
|
ID_TAG("ID:"),
|
||||||
|
VOTER_ENTRY_TAG("Voter Entry"),
|
||||||
|
GROUP_ID_TAG("Group ID:"),
|
||||||
|
GROUP_ACTION_TAG("Group Action:"),
|
||||||
|
REMOVE_FROM_GROUP_TAG("Remove From Group"),
|
||||||
|
ADD_TO_GROUP_TAG("Add To Group"),
|
||||||
|
ACTION_TIMESTAMP_TAG("Action timestamp: "),
|
||||||
|
VOTE_ACTION_TAG("Vote Action");
|
||||||
|
|
||||||
public static final String ID_TAG = "ID:";
|
private final String text;
|
||||||
|
|
||||||
public static final String VOTER_ENTRY_TAG = "Voter Entry";
|
Tags(final String text){
|
||||||
|
this.text = text
|
||||||
public static final String GROUP_ID_TAG = "Group ID:";
|
}
|
||||||
|
|
||||||
public static final String GROUP_ACTION_TAG = "Group Action:";
|
|
||||||
|
|
||||||
public static final String REMOVE_FROM_GROUP_TAG = "Remove From Group";
|
|
||||||
|
|
||||||
public static final String ADD_TO_GROUP_TAG = "Add To Group";
|
|
||||||
|
|
||||||
public static final String ACTION_TIMESTAMP_TAG = "Action timestamp: ";
|
|
||||||
|
|
||||||
public static final String VOTE_ACTION_TAG = "Vote Action";
|
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue