Differencer.java

package org.docascode.api.diff;

import org.apache.commons.io.FilenameUtils;
import org.docascode.api.core.errors.DocAsCodeException;
import org.docascode.api.event.Event;

public class Differencer extends AbstractDifferencer{
    @Override
    public void diff() throws DocAsCodeException {
        AbstractDifferencer diff;
        String extension = FilenameUtils.getExtension(targetFile.getAbsolutePath());
        switch (extension) {
            case "docx":
                diff = new DocxDifferencer();
                break;
            default:
                Event e = new Event(this);
                e.setMessage(String.format(
                        "Unsupported format '%s' for diff",
                        extension));
                fireEvent(e);
                return;
        }
        ((AbstractDifferencer) diff.addListener(this))
             .setBaseFile(this.baseFile)
             .setRevisedFile(this.revisedFile)
             .setTargetFile(this.targetFile)
             .setRevision(this.revision)
             .diff();
    }
}