package hudson.plugins.warnings.parser; import java.util.regex.Matcher; /** * A parser for Flex SDK compiler warnings. * * @author Vivien Tintillier */ public class FlexSDKParser extends RegexpLineParser { /** Warning type of this parser. */ static final String WARNING_TYPE = "Flex SDK Compilers (compc & mxmlc)"; /** Pattern of mxmc and compc compiler warnings, with possible Ant task name first. */ private static final String FLEX_SDK_WARNING_PATTERN = "^\\s*(?:\\[.*\\])?\\s*(.*\\.as|.*\\.mxml)\\((\\d*)\\):\\s*(?:col:\\s*\\d*\\s*)?(?:Warning)\\s*:\\s*(.*)$"; /** * Creates a new instance of {@link FlexSDKParser}. */ public FlexSDKParser() { super(FLEX_SDK_WARNING_PATTERN, WARNING_TYPE, true); } /** {@inheritDoc} */ @Override protected boolean isLineInteresting(final String line) { return line.contains("Warning"); } /** * Creates a new annotation for the specified pattern. * * @param matcher the regular expression matcher * @return a new annotation for the specified pattern */ @Override protected Warning createWarning(final Matcher matcher) { String message = matcher.group(3); String category = ""; return new Warning(matcher.group(1), getLineNumber(matcher.group(2)), WARNING_TYPE, category, message); } }