Class MoodEventFilter

java.lang.Object
com.kernelcrew.moodapp.data.MoodEventFilter

public class MoodEventFilter extends Object
A class for filtering mood events through Firestore. It is used to build queries based on various filters.
  • Constructor Details

    • MoodEventFilter

      public MoodEventFilter(com.google.firebase.firestore.Query allMoodEvents)
    • MoodEventFilter

      public MoodEventFilter(MoodEventProvider provider)
  • Method Details

    • addEmotion

      public MoodEventFilter addEmotion(Emotion emotion)
    • addEmotions

      public MoodEventFilter addEmotions(Set<Emotion> emotions)
    • setEmotions

      public MoodEventFilter setEmotions(Set<Emotion> emotions)
    • setLocation

      public MoodEventFilter setLocation(Double latitude, Double longitude, double radius)
    • setDateRange

      public MoodEventFilter setDateRange(@Nullable Date startDate, @Nullable Date endDate)
    • setSortField

      public MoodEventFilter setSortField(String field, com.google.firebase.firestore.Query.Direction direction)
    • setUser

      public MoodEventFilter setUser(String userId)
      Set user filter to a single user ID.
    • setUsers

      public MoodEventFilter setUsers(Set<String> userIds)
    • addUser

      public MoodEventFilter addUser(String userId)
    • addUsers

      public MoodEventFilter addUsers(Set<String> userIds)
    • setLimit

      public MoodEventFilter setLimit(int limit)
    • addSocialSituation

      public MoodEventFilter addSocialSituation(String socialSituation)
    • addSocialSituations

      public MoodEventFilter addSocialSituations(Set<String> socialSituations)
    • setSocialSituations

      public MoodEventFilter setSocialSituations(Set<String> socialSituations)
    • setReasonQuery

      public MoodEventFilter setReasonQuery(String query)
    • getEmotions

      public Set<Emotion> getEmotions()
    • getStartDate

      public Date getStartDate()
    • getEndDate

      public Date getEndDate()
    • getReasonQuery

      public String getReasonQuery()
    • getFilterLatitude

      public Double getFilterLatitude()
    • getFilterLongitude

      public Double getFilterLongitude()
    • getFilterRadius

      public Double getFilterRadius()
    • count

      public int count()
      Counts the number of applied filters.
      Returns:
      The number of active filters.
    • clearFilters

      public void clearFilters()
      Clears all applied filters.
    • getSummary

      public String getSummary()
      Returns a summary of the currently applied filters.
      Returns:
      A summary string.
    • buildQuery

      public com.google.firebase.firestore.Query buildQuery()
      Builds a Firestore Query using the applied filters.
      Returns:
      A Query with filtering and sorting applied.
    • applyReasonFilter

      public List<MoodEvent> applyReasonFilter(List<MoodEvent> events)
      Filters a list of mood events by reasonQuery if set.
      Parameters:
      events - The events to filter.
      Returns:
      A filtered List containing only those with a matching reason if reasonQuery is set.