/*
* SonarQube
* Copyright (C) 2009-2017 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* 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 02110-1301, USA.
*/
package org.sonar.scanner.report;
import org.sonar.api.batch.sensor.highlighting.TypeOfText;
import org.sonar.scanner.protocol.output.ScannerReport.SyntaxHighlightingRule.HighlightingType;
public class ScannerReportUtils {
private ScannerReportUtils() {
}
public static HighlightingType toProtocolType(TypeOfText textType) {
switch (textType) {
case ANNOTATION:
return HighlightingType.ANNOTATION;
case COMMENT:
return HighlightingType.COMMENT;
case CONSTANT:
return HighlightingType.CONSTANT;
case CPP_DOC:
return HighlightingType.CPP_DOC;
case KEYWORD:
return HighlightingType.KEYWORD;
case KEYWORD_LIGHT:
return HighlightingType.KEYWORD_LIGHT;
case PREPROCESS_DIRECTIVE:
return HighlightingType.PREPROCESS_DIRECTIVE;
case STRING:
return HighlightingType.HIGHLIGHTING_STRING;
case STRUCTURED_COMMENT:
return HighlightingType.STRUCTURED_COMMENT;
default:
throw new IllegalArgumentException("Unknow highlighting type: " + textType);
}
}
public static TypeOfText toBatchType(HighlightingType type) {
switch (type) {
case ANNOTATION:
return TypeOfText.ANNOTATION;
case COMMENT:
return TypeOfText.COMMENT;
case CONSTANT:
return TypeOfText.CONSTANT;
case CPP_DOC:
return TypeOfText.CPP_DOC;
case HIGHLIGHTING_STRING:
return TypeOfText.STRING;
case KEYWORD:
return TypeOfText.KEYWORD;
case KEYWORD_LIGHT:
return TypeOfText.KEYWORD_LIGHT;
case PREPROCESS_DIRECTIVE:
return TypeOfText.PREPROCESS_DIRECTIVE;
case STRUCTURED_COMMENT:
return TypeOfText.STRUCTURED_COMMENT;
default:
throw new IllegalArgumentException(type + " is not a valid type");
}
}
public static String toCssClass(HighlightingType type) {
return toBatchType(type).cssClass();
}
}