Implement "file:..." statement and directive
* See semantics and examples in updated syntax.md.
* Add new feature:
* Accept new file: statement/directive in OwnersValidator.java
but still not checking the content of included files.
* Parser.FILE_DIRECTIVE defined as one pattern used in per-file.
* Add Parser.IncludeStack to keep track of included project:file.
* Factor out Parser.includeFile to handle all "include" and "file:"
statements or directives.
* Reduce repeated inclusion and parsing:
* Keep readFiles in OwnersDb to read one repository file only once.
* Add Parser.savedResults to avoid parsing a file multiple times.
* Improve log and error messages:
* Shorten log message: () for empty content, (...) for non-empty.
* Keep Parser warnings and errors as sets to avoid duplication.
Sort all unique warnings and errors before dump to logger.
* Rename parseLine:skip messages to
parseLine:errorRecursion and parseLine:useSaved
* Add documents and tests:
* Add more JavaDoc comments to Parser.java.
* Update syntax.md to include "file:" statement and directive.
* Add test cases in FindOwnersIT, ParserTest, OwnersValidatorTest.
* Reduce dependency on myProjectName
Change-Id: I235bbdd70ecaded4b20767eac0abbe27e6061b01
7 files changed