package org.chartsy.chatsy.chat; import org.chartsy.chatsy.chat.plugin.MetadataListener; import org.chartsy.chatsy.chat.ui.ChatRoom; import java.util.ArrayList; import java.util.List; import java.util.Map; public class DataManager { private static DataManager singleton; private static final Object LOCK = new Object(); private List<MetadataListener> metadataListeners = new ArrayList<MetadataListener>(); public static DataManager getInstance() { synchronized (LOCK) { if (null == singleton) { DataManager controller = new DataManager(); singleton = controller; return controller; } } return singleton; } private DataManager() { } public void addMetadataListener(MetadataListener listener) { metadataListeners.add(listener); } public void removeMetadataListener(MetadataListener listener) { metadataListeners.remove(listener); } public void setMetadataForRoom(ChatRoom room, Map map) { for (MetadataListener listener : metadataListeners) listener.metadataAssociatedWithRoom(room, map); } }