com.googlecode.android_scripting.trigger
Class TriggerRepository

java.lang.Object
  extended by com.googlecode.android_scripting.trigger.TriggerRepository

public class TriggerRepository
extends java.lang.Object

A repository maintaining all currently scheduled triggers. This includes, for example, alarms or observers of arriving text messages etc. This class is responsible for serializing the list of triggers to the shared preferences store, and retrieving it from there.

Author:
Felix Arends (felix.arends@gmail.com), Damon Kohler (damonkohler@gmail.com)

Nested Class Summary
static interface TriggerRepository.TriggerRepositoryObserver
          An interface for objects that are notified when a trigger is added to the repository.
 
Constructor Summary
TriggerRepository(Context context)
           
 
Method Summary
 void addObserver(TriggerRepository.TriggerRepositoryObserver observer)
          Adds a TriggerRepository.TriggerRepositoryObserver.
 void bootstrapObserver(TriggerRepository.TriggerRepositoryObserver observer)
          Adds the given TriggerRepository.TriggerRepositoryObserver and invokes TriggerRepository.TriggerRepositoryObserver.onPut(com.googlecode.android_scripting.trigger.Trigger) for all existing triggers.
 com.google.common.collect.Multimap<java.lang.String,Trigger> getAllTriggers()
          Returns a list of all triggers.
 boolean isEmpty()
          Returns true iff the list of triggers is empty.
 void put(Trigger trigger)
          Adds a new trigger to the repository.
 void remove(Trigger trigger)
          Removes a specific Trigger.
 void removeObserver(TriggerRepository.TriggerRepositoryObserver observer)
          Removes a TriggerRepository.TriggerRepositoryObserver.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TriggerRepository

public TriggerRepository(Context context)
Method Detail

getAllTriggers

public com.google.common.collect.Multimap<java.lang.String,Trigger> getAllTriggers()
Returns a list of all triggers. The list is unmodifiable.


put

public void put(Trigger trigger)
Adds a new trigger to the repository.

Parameters:
trigger - the Trigger to add

remove

public void remove(Trigger trigger)
Removes a specific Trigger.


isEmpty

public boolean isEmpty()
Returns true iff the list of triggers is empty.


addObserver

public void addObserver(TriggerRepository.TriggerRepositoryObserver observer)
Adds a TriggerRepository.TriggerRepositoryObserver.


bootstrapObserver

public void bootstrapObserver(TriggerRepository.TriggerRepositoryObserver observer)
Adds the given TriggerRepository.TriggerRepositoryObserver and invokes TriggerRepository.TriggerRepositoryObserver.onPut(com.googlecode.android_scripting.trigger.Trigger) for all existing triggers.

Parameters:
observer - The observer to add.

removeObserver

public void removeObserver(TriggerRepository.TriggerRepositoryObserver observer)
Removes a TriggerRepository.TriggerRepositoryObserver.