package update;

import java.util.*;

import com.google.protobuf.InvalidProtocolBufferException;

import network.message.*;
import network.message.protobuf.RemoteMessageFromRobot.*;

public class RobotUpdate implements Iterable<RemoteMessageFromRobot> {

  public RobotUpdate(boolean isBlue) {
    this.isBlue = isBlue; 
    
    messages = new Vector<RemoteMessageFromRobot>();
  }
  
  public void addMessage(RemoteMessageFromRobot message) {
    if (message.getType() == RemoteMessageFromRobot.MessageType.PROTOBUF) {
      try {
        RemoteMessageFromRobotProtobuf protobuf = RemoteMessageFromRobotProtobuf.parseFrom(message.getData());
        if (protobuf.hasIsTeamColorBlue()) {
          isBlue = protobuf.getIsTeamColorBlue();
        }
      }
      catch (InvalidProtocolBufferException e) {
      }
    }

    messages.add(message);
  }
  
  public boolean isBlue() {
    return isBlue;
  }
  
  public Iterator<RemoteMessageFromRobot> iterator() {
    return messages.iterator();
  }
  
  List<RemoteMessageFromRobot> messages;
  
  private boolean isBlue;
}
