package net.codjo.segmentation.server.participant.context;
import net.codjo.segmentation.server.blackboard.message.Todo;
import net.codjo.segmentation.server.preference.family.XmlFamilyPreference;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
*
*/
public class FamilyContext extends AbstractContext<Integer, SegmentationContext> {
private XmlFamilyPreference familyPreference;
private Map<String, String> parameters;
public FamilyContext(XmlFamilyPreference familyPreference, Map<String, String> parameters) {
this.familyPreference = familyPreference;
this.parameters = parameters;
}
public SegmentationContext getSegmentationContext(Todo<TodoContent> todo) {
synchronized (lock) {
return get(todo.getContent().getSegmentationId());
}
}
public SegmentationContext getSegmentationContext(int segmentationId) {
synchronized (lock) {
return get(segmentationId);
}
}
public void putSegmentationContext(SegmentationContext context) {
synchronized (lock) {
put(context.getSegmentationId(), context);
}
}
public List<SegmentationContext> getSegmentationContexts() {
synchronized (lock) {
List<SegmentationContext> segmentationContexts = new ArrayList<SegmentationContext>();
for (SegmentationContext context : getContexts().values()) {
segmentationContexts.add(context);
}
return segmentationContexts;
}
}
public XmlFamilyPreference getFamilyPreference() {
synchronized (lock) {
return familyPreference;
}
}
public Map<String, String> getParameters() {
synchronized (lock) {
return parameters;
}
}
}