package rescuecore2.messages.components;
import static rescuecore2.misc.EncodingTools.readInt32;
import static rescuecore2.misc.EncodingTools.writeInt32;
import rescuecore2.messages.AbstractMessageComponent;
import rescuecore2.worldmodel.EntityID;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
/**
An EntityID component to a message.
*/
public class EntityIDComponent extends AbstractMessageComponent {
private EntityID value;
/**
Construct an EntityIDComponent with no content.
@param name The name of the component.
*/
public EntityIDComponent(String name) {
super(name);
value = null;
}
/**
Construct an EntityIDComponent with a specific value.
@param name The name of the component.
@param value The value of this component.
*/
public EntityIDComponent(String name, EntityID value) {
super(name);
this.value = value;
}
/**
Get the value of this message component.
@return The value of the component.
*/
public EntityID getValue() {
return value;
}
/**
Set the value of this message component.
@param id The new value of the component.
*/
public void setValue(EntityID id) {
value = id;
}
@Override
public void write(OutputStream out) throws IOException {
writeInt32(value.getValue(), out);
}
@Override
public void read(InputStream in) throws IOException {
value = new EntityID(readInt32(in));
}
@Override
public String toString() {
return getName() + " = " + value;
}
}