package com.cookpad.puree; import com.cookpad.puree.outputs.PureeOutput; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Source { private PureeConfiguration.Builder builder; private Class<?> logClass; private List<PureeFilter> filters = new ArrayList<>(); public Source(PureeConfiguration.Builder builder, Class<?> logClass) { this.builder = builder; this.logClass = logClass; } /** * Specify the {@link com.cookpad.puree.PureeFilter}. * * @param filter {@link PureeFilter}. * @return {@link Source}. */ public Source filter(PureeFilter filter) { filters.add(filter); return this; } /** * Specify the {@link com.cookpad.puree.PureeFilter}. * * @param filters {@link PureeFilter} list. * @return {@link Source}. */ public Source filters(PureeFilter... filters) { this.filters.addAll(Arrays.asList(filters)); return this; } /** * Specify the {@link com.cookpad.puree.outputs.PureeOutput} that is responded to source. * * @param output {@link com.cookpad.puree.outputs.PureeOutput}. * @return {@link com.cookpad.puree.PureeConfiguration.Builder}. */ public PureeConfiguration.Builder to(PureeOutput output) { builder.register(logClass, output.withFilters(filters)); return builder; } }