package org.jboss.narayana.rest.integration;
import org.jboss.narayana.rest.integration.api.VolatileParticipant;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
*
* @author <a href="mailto:gytis@redhat.com">Gytis Trikleris</a>
*
*/
public final class ParticipantsContainer {
private static final ParticipantsContainer INSTANCE = new ParticipantsContainer();
private final Map<String, ParticipantInformation> participantsInformation;
private final Map<String, VolatileParticipant> volatileParticipants;
public static ParticipantsContainer getInstance() {
return INSTANCE;
}
private ParticipantsContainer() {
participantsInformation = new ConcurrentHashMap<String, ParticipantInformation>();
volatileParticipants = new ConcurrentHashMap<String, VolatileParticipant>();
}
public Map<String, ParticipantInformation> getAllParticipantsInformation() {
return Collections.unmodifiableMap(participantsInformation);
}
public Map<String, VolatileParticipant> getAllVolatileParticipants() {
return Collections.unmodifiableMap(volatileParticipants);
}
public ParticipantInformation getParticipantInformation(final String participantId) {
return participantsInformation.get(participantId);
}
public VolatileParticipant getVolatileParticipant(final String participantId) {
return volatileParticipants.get(participantId);
}
public void addParticipantInformation(final String participantId, final ParticipantInformation participantInformation) {
participantsInformation.put(participantId, participantInformation);
}
public void addVolatileParticipant(final String participantId, final VolatileParticipant volatileParticipant) {
volatileParticipants.put(participantId, volatileParticipant);
}
public void removeParticipantInformation(final String participantId) {
participantsInformation.remove(participantId);
}
public void removeVolatileParticipant(final String participantId) {
volatileParticipants.remove(participantId);
}
public void clear() {
participantsInformation.clear();
volatileParticipants.clear();
}
}