@Override public Severity getSeverity(Issue issue) { ensureInitialized(); Severity severity = mSeverity.get(issue.getId()); if (severity != null) { return severity; } if (mParent != null) { return mParent.getSeverity(issue); } return getDefaultSeverity(issue); }
/** * Creates a new {@link DefaultConfiguration} for the given lint config * file, not affiliated with a project. This is used for global * configurations. * * @param client the client to report errors to etc * @param lintFile the lint file containing the configuration * @return a new configuration */ public static DefaultConfiguration create(LintClient client, File lintFile) { return new DefaultConfiguration(client, null /*project*/, null /*parent*/, lintFile); }
/** * Returns a configuration for use by the given project. The configuration * provides information about which issues are enabled, any customizations * to the severity of an issue, etc. * <p> * By default this method returns a {@link DefaultConfiguration}. * * @param project the project to obtain a configuration for * @return a configuration, never null. */ public Configuration getConfiguration(Project project) { return DefaultConfiguration.create(this, project, null); }
@Override public void setSeverity(Issue issue, Severity severity) { ensureInitialized(); String id = issue.getId(); if (severity == null) { mSeverity.remove(id); } else { mSeverity.put(id, severity); } if (!mBulkEditing) { writeConfig(); } }
String idList = element.getAttribute(ATTR_ID); if (idList.isEmpty()) { formatError("Invalid lint config file: Missing required issue id attribute"); continue; formatError("Unexpected attribute \"%1$s\"", name); String regexp = ignore.getAttribute(ATTR_REGEXP); if (regexp.isEmpty()) { formatError("Missing required attribute %1$s or %2$s under %3$s", ATTR_PATH, ATTR_REGEXP, idList); } else { addRegexp(idList, ids, n, regexp, false); String regexp = globToRegexp(path); addRegexp(idList, ids, n, regexp, false); } else { for (String id : ids) { formatError(e.getMessage()); } catch (Exception e) { client.log(e, null);
@NonNull @Override protected Severity getDefaultSeverity(@NonNull Issue issue) { if (flags.isCheckAllWarnings()) { return issue.getDefaultSeverity(); } return super.getDefaultSeverity(issue); }
} else if (url.name.contains("*") || url.name.contains("?")) { String regexp = DefaultConfiguration.globToRegexp(LintUtils.getFieldName(url.name)); try { Pattern pattern = Pattern.compile(regexp);
@Override public void finishBulkEditing() { mBulkEditing = false; writeConfig(); } }
@Override public void ignore(Context context, Issue issue, Location location, String message, Object data) { // This configuration only supports suppressing warnings on a per-file basis if (location != null) { ignore(issue, location.getFile()); } }
private void ensureInitialized() { if (suppressed == null) { readConfig(); } }
@Override public boolean isIgnored(Context context, Issue issue, Location location, String message, Object data) { ensureInitialized(); String id = issue.getId(); List<String> paths = mSuppressed.get(id); if (paths != null && location != null) { File file = location.getFile(); String relativePath = context.project.getRelativePath(file); for (String suppressedPath : paths) { if (suppressedPath.equals(relativePath)) { return true; } } } if (mParent != null) { return mParent.isIgnored(context, issue, location, message, data); } return false; }
writer.write(" <"); //$NON-NLS-1$ writer.write(TAG_ISSUE); writeAttribute(writer, ATTR_ID, id); Severity severity = mSeverity.get(id); if (severity != null) { writeAttribute(writer, ATTR_SEVERITY, severity.name().toLowerCase()); writer.write(" <"); //$NON-NLS-1$ writer.write(TAG_IGNORE); writeAttribute(writer, ATTR_PATH, path); writer.write(" />\n"); //$NON-NLS-1$
@Override public void setSeverity(@NonNull Issue issue, @Nullable Severity severity) { ensureInitialized(); String id = issue.getId(); if (severity == null) { this.severity.remove(id); } else { this.severity.put(id, severity); } if (!bulkEditing) { writeConfig(); } }
@Override @NonNull protected Severity getDefaultSeverity(@NonNull Issue issue) { // In unit tests, include issues that are ignored by default Severity severity = super.getDefaultSeverity(issue); if (severity == Severity.IGNORE) { if (issue.getDefaultSeverity() != Severity.IGNORE) { return issue.getDefaultSeverity(); } return Severity.WARNING; } return severity; }
} else if (url.name.contains("*") || url.name.contains("?")) { String regexp = DefaultConfiguration.globToRegexp(getFieldName(url.name)); try { Pattern pattern = Pattern.compile(regexp);
@Override public void finishBulkEditing() { bulkEditing = false; writeConfig(); }
@Override public void ignore( @NonNull Context context, @NonNull Issue issue, @Nullable Location location, @NonNull String message) { // This configuration only supports suppressing warnings on a per-file basis if (location != null) { ignore(issue, location.getFile()); } }
private void ensureInitialized() { if (mSuppressed == null) { readConfig(); } }
@Nullable Location location, @NonNull String message) { ensureInitialized();
String path = project != null ? project.getRelativePath(baselineFile) : baselineFile.getPath(); writeAttribute(writer, ATTR_BASELINE, path.replace('\\', '/')); writer.write(" <"); writer.write(TAG_ISSUE); writeAttribute(writer, ATTR_ID, id); Severity severity = this.severity.get(id); if (severity != null) { writeAttribute(writer, ATTR_SEVERITY, severity.name().toLowerCase(Locale.US)); writer.write(" <"); writer.write(TAG_IGNORE); writeAttribute(writer, ATTR_PATH, path.replace('\\', '/')); writer.write(" />\n"); writer.write(" <"); writer.write(TAG_IGNORE); writeAttribute(writer, ATTR_REGEXP, regexp.pattern()); writer.write(" />\n");