com.topologi.diffx.format.MultiplexFormatter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of docx4j Show documentation
Show all versions of docx4j Show documentation
docx4j is a library which helps you to work with the Office Open
XML file format as used in docx
documents, pptx presentations, and xlsx spreadsheets.
/*
* This file is part of the DiffX library.
*
* For licensing information please see the file license.txt included in the release.
* A copy of this licence can also be found at
* http://www.opensource.org/licenses/artistic-license-2.0.php
*/
package com.topologi.diffx.format;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.topologi.diffx.config.DiffXConfig;
import com.topologi.diffx.event.DiffXEvent;
/**
* A formatter which can relay the method calls to multiple formatters.
*
* @author Christophe Lauret
* @version 11 December 2008
*/
public final class MultiplexFormatter implements DiffXFormatter {
// class attributes ---------------------------------------------------------------------------
/**
* the list of formatters to use.
*/
private final List formatters;
// constructors -------------------------------------------------------------------------------
/**
* Creates a new formatter without any underlying formatters.
*/
public MultiplexFormatter() {
this.formatters = new ArrayList();
}
/**
* Creates a new formatter wrapping the specified formatter.
*
* @param f The formatter to use.
*/
public MultiplexFormatter(DiffXFormatter f) {
this.formatters = new ArrayList(1);
this.formatters.add(f);
}
// methods ------------------------------------------------------------------------------------
/**
* Adds a formatter to multiplex.
*
* @param f The Diff-X formatter to add.
*/
public void add(DiffXFormatter f) {
this.formatters.add(f);
}
@Override
public void format(DiffXEvent e) throws IOException {
for (DiffXFormatter f : this.formatters) {
f.format(e);
}
}
@Override
public void insert(DiffXEvent e) throws IOException {
for (DiffXFormatter f : this.formatters) {
f.insert(e);
}
}
@Override
public void delete(DiffXEvent e) throws IOException, IllegalStateException {
for (DiffXFormatter f : this.formatters) {
f.delete(e);
}
}
@Override
public void setConfig(DiffXConfig config) {
for (DiffXFormatter f : this.formatters) {
f.setConfig(config);
}
}
}