/*
* Sonar C# Plugin :: Gallio
* Copyright (C) 2010 Jose Chillan, Alexandre Victoor and SonarSource
* dev@sonar.codehaus.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
*/
package org.sonar.plugins.csharp.gallio.results.coverage;
import static org.sonar.plugins.csharp.gallio.helper.StaxHelper.findAttributeValue;
import org.codehaus.staxmate.in.SMInputCursor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PartCover22ParsingStrategy extends PartCover2ParsingStrategy {
private static final Logger LOG = LoggerFactory.getLogger(PartCover22ParsingStrategy.class);
public PartCover22ParsingStrategy() {
setModuleTag("type");
setFileTag("file");
}
@Override
public boolean isCompatible(SMInputCursor rootCursor) {
boolean result = false;
String version = findAttributeValue(rootCursor, "ver");
LOG.debug("Visible version is : {}", version);
if (version != null) {
if (version.startsWith("2.2")) {
LOG.debug("Using PartCover 2.2 report format");
result = true;
} else {
LOG.debug("Not using PartCover 2.2 report format2");
result = false;
}
} else {
if (findAttributeValue(rootCursor, "exitCode") != null) {
LOG.debug("Using PartCover 2.2 report format");
result = true;
} else {
LOG.debug("Not using PartCover 2.2 report format2");
result = false;
}
}
return result;
}
}