package com.revolsys.io; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import com.revolsys.properties.BaseObjectWithProperties; public abstract class AbstractWriter<T> extends BaseObjectWithProperties implements Writer<T> { public static void close(final Collection<? extends Writer<?>> writers) { final List<RuntimeException> exceptions = new ArrayList<>(); for (final Writer<?> writer : writers) { if (writer != null) { try { writer.close(); } catch (final RuntimeException e) { exceptions.add(e); } } } if (!exceptions.isEmpty()) { throw exceptions.get(0); } } public static void close(final Writer<?>... writers) { close(Arrays.asList(writers)); } public static <V> Writer<V> close(final Writer<V> writer) { if (writer != null) { writer.close(); } return null; } @Override public void close() { } @Override public void flush() { } @Override public void open() { } }