package org.batfish.datamodel.answers;
import java.io.Serializable;
import java.util.SortedMap;
import java.util.TreeMap;
import org.batfish.common.ParseTreeSentences;
import org.batfish.common.Warning;
import org.batfish.common.Warnings;
public class ParseVendorConfigurationAnswerElement
implements AnswerElement, Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private SortedMap<String, String> _fileMap;
private SortedMap<String, ParseStatus> _parseStatus;
private SortedMap<String, ParseTreeSentences> _parseTrees;
private String _version;
private SortedMap<String, Warnings> _warnings;
public ParseVendorConfigurationAnswerElement() {
_fileMap = new TreeMap<>();
_parseStatus = new TreeMap<>();
_parseTrees = new TreeMap<>();
_warnings = new TreeMap<>();
}
public void addRedFlagWarning(String name, Warning warning) {
if (!_warnings.containsKey(name)) {
_warnings.put(name, new Warnings());
}
_warnings.get(name).getRedFlagWarnings().add(warning);
}
public SortedMap<String, String> getFileMap() {
return _fileMap;
}
public SortedMap<String, ParseStatus> getParseStatus() {
return _parseStatus;
}
public SortedMap<String, ParseTreeSentences> getParseTrees() {
return _parseTrees;
}
public String getVersion() {
return _version;
}
public SortedMap<String, Warnings> getWarnings() {
return _warnings;
}
@Override
public String prettyPrint() {
StringBuilder retString = new StringBuilder(
"Results of parsing vendor configurations\n");
for (String name : _warnings.keySet()) {
retString.append("\n " + name + "[Parser warnings]\n");
for (Warning warning : _warnings.get(name).getRedFlagWarnings()) {
retString.append(" RedFlag " + warning.getTag() + " : "
+ warning.getText() + "\n");
}
for (Warning warning : _warnings.get(name)
.getUnimplementedWarnings()) {
retString.append(" Unimplemented " + warning.getTag() + " : "
+ warning.getText() + "\n");
}
for (Warning warning : _warnings.get(name).getPedanticWarnings()) {
retString.append(" Pedantic " + warning.getTag() + " : "
+ warning.getText() + "\n");
}
}
for (String name : _parseTrees.keySet()) {
retString.append("\n " + name + " [Parse trees]\n");
for (String sentence : _parseTrees.get(name).getSentences()) {
retString.append(" ParseTreeSentence : " + sentence + "\n");
}
}
return retString.toString();
}
public void setFileMap(SortedMap<String, String> fileMap) {
_fileMap = fileMap;
}
public void setParseStatus(SortedMap<String, ParseStatus> parseStatus) {
_parseStatus = parseStatus;
}
public void setParseTrees(SortedMap<String, ParseTreeSentences> parseTrees) {
_parseTrees = parseTrees;
}
public void setVersion(String version) {
_version = version;
}
public void setWarnings(SortedMap<String, Warnings> warnings) {
_warnings = warnings;
}
}