package com.rayo.server.storage.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
/**
* <p>This is a class which simply holds information about a distributed call.</p>
*
* @author martin
*
*/
public class GatewayMixer implements Serializable {
private static final long serialVersionUID = 8103375784518687864L;
private String name;
private String nodeJid;
private Set<String> participants = new HashSet<String>();
public GatewayMixer(String mixerName, String nodeJid) {
this.name = mixerName;
this.nodeJid = nodeJid;
}
public String getName() {
return name;
}
public String getNodeJid() {
return nodeJid;
}
public void addCall(String callId) {
participants.add(callId);
}
public void removeCall(String callId) {
participants.remove(callId);
}
public List<String> getParticipants() {
return new ArrayList<String>(participants);
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof GatewayMixer)) return false;
return name.equals(((GatewayMixer)obj).getName());
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
.append("name", getName())
.toString();
}
public void addCalls(List<String> calls) {
participants.addAll(calls);
}
}