/src/main/java/com/atlassian/bamboo/plugin/dotnet/ncover/NCoverPostBuildIndexWriter.java
Java | 69 lines | 47 code | 9 blank | 13 comment | 2 complexity | a5952e696de4d0514c9f7ff0212b5ebf MD5 | raw file
Possible License(s): BSD-3-Clause
- package com.atlassian.bamboo.plugin.dotnet.ncover;
-
- import com.atlassian.bamboo.chains.ChainResultsSummary;
- import com.atlassian.bamboo.index.CustomPostBuildIndexWriter;
- import com.atlassian.bamboo.index.PostChainIndexWriter;
- import com.atlassian.bamboo.resultsummary.BuildResultsSummary;
- import com.atlassian.bamboo.resultsummary.ResultsSummary;
- import org.apache.log4j.Logger;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.document.DoubleField;
- import org.apache.lucene.document.Field;
- import org.jetbrains.annotations.NotNull;
-
- import java.text.NumberFormat;
- import java.text.ParseException;
-
- /**
- * Handles persisting results obtained from parsing the NCover XML report file.
- *
- * @author Ross Rowe
- */
- public class NCoverPostBuildIndexWriter implements CustomPostBuildIndexWriter, PostChainIndexWriter
- {
-
- private static final Logger log = Logger.getLogger(NCoverPostBuildIndexWriter.class);
-
- /**
- * Updates the <code>Document</code> with the results that have been stored
- * in the <code>BuildResultsSummary</code> parameter.
- *
- * @param document
- * @param resultsSummary
- * the build results summary
- */
- @Override
- public void updateIndexDocument(@NotNull Document document, @NotNull BuildResultsSummary resultsSummary)
- {
- updateIndex(document, resultsSummary);
- }
-
- @Override
- public void updateIndexDocument(@NotNull final Document document, @NotNull final ChainResultsSummary resultsSummary)
- {
- updateIndex(document, resultsSummary);
- }
-
- private void updateIndex(final Document document, final ResultsSummary resultsSummary)
- {
- String coverStr = resultsSummary.getCustomBuildData().get(NCoverBuildProcessor.NCOVER_LINE_RATE);
- if (coverStr == null)
- {
- return;
- }
-
- NumberFormat numberFormat = NumberFormat.getInstance();
- try
- {
- Number number = numberFormat.parse(coverStr);
- double coverDbl = number.doubleValue();
-
- Field field = new DoubleField(NCoverBuildProcessor.NCOVER_LINE_RATE, coverDbl, Field.Store.YES);
- document.add(field);
- }
- catch (ParseException e)
- {
- log.error(e);
- }
- }
- }