blob: 939b6081d7405297acd12a5bfd50b5da3bf9cb50 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one *
* or more contributor license agreements. See the NOTICE file *
* distributed with this work for additional information *
* regarding copyright ownership. The ASF licenses this file *
* to you 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 *
* *
* Unless required by applicable law or agreed to in writing, *
* software distributed under the License is distributed on an *
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
* KIND, either express or implied. See the License for the *
* specific language governing permissions and limitations *
* under the License. *
*/
package org.apache.rat.report.xml;
import org.apache.rat.ReportConfiguration;
import org.apache.rat.analysis.DefaultAnalyserFactory;
import org.apache.rat.document.IDocumentAnalyser;
import org.apache.rat.document.impl.util.DocumentAnalyserMultiplexer;
import org.apache.rat.policy.DefaultPolicy;
import org.apache.rat.report.RatReport;
import org.apache.rat.report.claim.ClaimStatistic;
import org.apache.rat.report.claim.impl.ClaimAggregator;
import org.apache.rat.report.claim.impl.xml.SimpleXmlClaimReporter;
import org.apache.rat.report.claim.util.ClaimReporterMultiplexer;
import org.apache.rat.report.claim.util.LicenseAddingReport;
import org.apache.rat.report.xml.writer.IXmlWriter;
import java.util.ArrayList;
import java.util.List;
/**
* Creates reports.
*
*/
public class XmlReportFactory {
public static final RatReport createStandardReport(IXmlWriter writer,
final ClaimStatistic pStatistic, ReportConfiguration pConfiguration) {
final List<RatReport> reporters = new ArrayList<RatReport>();
if (pStatistic != null) {
reporters.add(new ClaimAggregator(pStatistic));
}
if (pConfiguration.isAddingLicenses()) {
reporters.add(new LicenseAddingReport(pConfiguration.getCopyrightMessage(), pConfiguration.isAddingLicensesForced()));
}
reporters.add(new SimpleXmlClaimReporter(writer));
final IDocumentAnalyser analyser =
DefaultAnalyserFactory.createDefaultAnalyser(pConfiguration.getHeaderMatcher());
final DefaultPolicy policy = new DefaultPolicy(pConfiguration.getApprovedLicenseNames(), pConfiguration.isApproveDefaultLicenses());
final IDocumentAnalyser[] analysers = {analyser, policy};
DocumentAnalyserMultiplexer analysisMultiplexer = new DocumentAnalyserMultiplexer(analysers);
return new ClaimReporterMultiplexer(analysisMultiplexer, reporters);
}
}