package com.matrobot.gha.archive.event; import java.util.HashSet; import java.util.Set; /** * This reader will filter events based on given parameters * * @author Krzysztof Langner */ public class FilteredEventReader implements IEventReader{ private IEventReader reader; private Set<String> repoNames = new HashSet<String>(); private String actor; private Set<String> eventTypes; public FilteredEventReader(IEventReader reader){ this.reader = reader; } /** * Filter events to this repository * @param name */ public void addRepoFilter(String name){ repoNames.add(name); } @Override public EventRecord next(){ EventRecord event; while((event=reader.next()) != null){ if(repoNames.contains(event.getRepositoryId()) && (actor == null || actor.equals(event.getActorLogin())) && (eventTypes == null || eventTypes.contains(event.type))) { break; } } return event; } public void setActor(String actor) { this.actor = actor; } public void addEventType(String type) { if(eventTypes == null){ eventTypes = new HashSet<String>(); } eventTypes.add(type); } }