001package org.galaxyproject.gxformat2;
002
003import java.util.ArrayList;
004import java.util.List;
005
006public class LintContext {
007  private boolean foundErrors = false;
008  private boolean foundWarns = false;
009
010  private List<String> validMessages = new ArrayList<String>();
011  private List<String> infoMessages = new ArrayList<String>();
012  private List<String> warnMessages = new ArrayList<String>();
013  private List<String> errorMessages = new ArrayList<String>();
014
015  LintContext() {}
016
017  public boolean getFoundErrors() {
018    return this.foundErrors;
019  }
020
021  public boolean getFoundWarns() {
022    return this.foundWarns;
023  }
024
025  void valid(String message, Object... args) {
026    this.validMessages.add(String.format(message, args));
027  }
028
029  void info(String message, Object... args) {
030    this.infoMessages.add(String.format(message, args));
031  }
032
033  void error(String message, Object... args) {
034    this.foundErrors = true;
035    this.errorMessages.add(String.format(message, args));
036  }
037
038  void warn(String message, Object... args) {
039    this.foundWarns = true;
040    this.warnMessages.add(String.format(message, args));
041  }
042
043  public List<String> collectMessages() {
044    final List<String> messages = new ArrayList<String>();
045    for (final String message : this.errorMessages) {
046      messages.add(".. ERROR " + message);
047    }
048
049    for (final String message : this.warnMessages) {
050      messages.add(".. WARNING " + message);
051    }
052    return messages;
053  }
054
055  public void printMessages() {
056    for (final String message : this.collectMessages()) {
057      System.out.println(message);
058    }
059  }
060}