package de.westnordost.streetcomplete.data;
import java.util.Collection;
import java.util.Collections;
import de.westnordost.osmapi.map.data.Element;
/** Threadsafe relay for VisibleQuestListener
* (setting the listener and calling the listener methods can safely be done from different threads) */
public class VisibleQuestRelay implements VisibleQuestListener
{
private VisibleQuestListener listener;
public synchronized void setListener(VisibleQuestListener listener)
{
this.listener = listener;
}
@Override public void onQuestCreated(Quest quest, QuestGroup group, Element element)
{
if (listener != null) listener.onQuestCreated(quest, group, element);
}
@Override public void onQuestsRemoved(Collection<Long> questIds, QuestGroup group)
{
if (listener != null) listener.onQuestsRemoved(questIds, group);
}
@Override public void onQuestsCreated(Collection<? extends Quest> quests, QuestGroup group)
{
if (listener != null) listener.onQuestsCreated(quests, group);
}
@Override public void onQuestSolved(long questId, QuestGroup group)
{
if (listener != null) listener.onQuestSolved(questId, group);
}
public void onQuestRemoved(long questId, QuestGroup group)
{
onQuestsRemoved(Collections.singletonList(questId), group);
}
}