org.ebayopensource.turmeric.maven.config.reports.XmlReport.java Source code

Java tutorial

Introduction

Here is the source code for org.ebayopensource.turmeric.maven.config.reports.XmlReport.java

Source

/*******************************************************************************
 * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *******************************************************************************/
package org.ebayopensource.turmeric.maven.config.reports;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.IOUtil;
import org.ebayopensource.turmeric.maven.config.console.Console;

public class XmlReport extends AbstractReport {
    private FileWriter writer;
    private PrintWriter out;

    public XmlReport(Console console, MavenProject project, File outputFile) throws IOException {
        super(console);
        this.writer = new FileWriter(outputFile);
        this.out = new PrintWriter(writer);
        this.out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        this.out.printf("<config-validation-report module-root=\"%s\" module-name=\"%s\">%n",
                XmlUtil.escaped(project.getBasedir().getAbsolutePath()), XmlUtil.escaped(project.getName()));
    }

    @Override
    public void fileEnd() {
        super.fileEnd();
        out.println("</file>");
    }

    @Override
    public void fileStart(File file) {
        super.fileStart(file);
        out.printf("  <file name=\"%s\">%n", XmlUtil.escaped(file));
    }

    @Override
    public void violation(String context, String format, Object... args) {
        out.printf("    <violation context=\"%s\">%n", XmlUtil.escaped(context));
        out.printf("    %s%n", XmlUtil.escaped(String.format(format, args)));
        out.printf("    </violation>%n");
    }

    public void close() {
        super.close();
        out.println("</config-validation-report>");
        IOUtil.close(out);
        IOUtil.close(writer);
    }
}