001 package com.hammurapi.review; 002 003 import java.util.ArrayList; 004 import java.util.Collection; 005 006 007 public class CompositeObservationSink implements ObservationSink { 008 009 private Collection<ObservationSink> sinks = new ArrayList<ObservationSink>(); 010 011 public synchronized void addSink(ObservationSink sink) { 012 sinks.add(sink); 013 } 014 015 @Override 016 public synchronized void close() throws ReviewException { 017 for (ObservationSink sink: sinks) { 018 sink.close(); 019 } 020 } 021 022 @Override 023 public synchronized void consumeObservation(Observation observation) throws ReviewException { 024 for (ObservationSink sink: sinks) { 025 sink.consumeObservation(observation); 026 } 027 } 028 029 }