EpisimTracingEvent.java

package org.matsim.episim.events;

import org.matsim.api.core.v01.Id;
import org.matsim.api.core.v01.events.Event;
import org.matsim.api.core.v01.population.Person;
import org.matsim.core.api.internal.HasPersonId;

import java.util.Map;

import static org.matsim.api.core.v01.events.ActivityEndEvent.ATTRIBUTE_ACTTYPE;


/**
 * Event that informs that tracing has happened between two persons.
 */
public final class EpisimTracingEvent extends Event implements HasPersonId {

	private static final String EVENT_TYPE = "episimTracing";
	private static final String CONTACT_PERSON = "contactPerson";

	private final Id<Person> personId;
	private final Id<Person> contactPersonId;

	/**
	 * Constructor.
	 */
	public EpisimTracingEvent(double time, Id<Person> personId, Id<Person> contactPersonId) {
		super(time);
		this.personId = personId;
		this.contactPersonId = contactPersonId;
	}

	@Override
	public String getEventType() {
		return EVENT_TYPE;
	}

	@Override
	public Id<Person> getPersonId() {
		return personId;
	}

	/**
	 * The contact person.
	 */
	public Id<Person> getContactPersonId() {
		return contactPersonId;
	}


	@Override
	public Map<String, String> getAttributes() {
		Map<String, String> attr = super.getAttributes();
		attr.put(CONTACT_PERSON, contactPersonId.toString());
		return attr;
	}
}