/* * Copyright (c) 2017 OBiBa. All rights reserved. * * This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.obiba.magma.datasource.fs.output; import java.io.OutputStream; import java.util.Arrays; import java.util.List; import org.obiba.magma.datasource.fs.OutputStreamWrapper; import de.schlichtherle.io.File; public class ChainedOutputStreamWrapper implements OutputStreamWrapper { List<OutputStreamWrapper> factories; public ChainedOutputStreamWrapper(List<OutputStreamWrapper> factories) { this.factories = factories; } public ChainedOutputStreamWrapper(OutputStreamWrapper... factories) { this(Arrays.asList(factories)); } @Override public OutputStream wrap(OutputStream os, File file) { OutputStream wrapped = os; for(OutputStreamWrapper factory : factories) { wrapped = factory.wrap(wrapped, file); } return wrapped; } }