In this document source files are the files that RAT is checking. They can be individual source files, document files, configuration files, archives, etc. The use of the term “source” does not specify application source files per. se.
Licenses comprise a unique ID, a name, and a series of tests.
ILicenseFamiy
IHeaderMatcher
AND
tests where all the the sub tests must be true for the test to be true; orOR
tests where one the the sub-tests being true makes the entire test true.When source files are tested for the presence of a license all the license checks are performed in parallel.
There are several implementations of tests
Text is specified, the complete text must be located in the source file.
The SPDX keyword must be found within the source file. SPDX keyword have the form SPDX-License-Identifier:\\s([A-Za-z0-9\\.\\-]+)
when defining the SPDX matcher onlyt the variable alpha-numeric phrase may be specified (eg the ‘Apache-2.0’ in the SPDX identifier 'SPDX-License-Identifier: Apache-2.0`
The copyright must match a specific date(range) and owner.
Multiplex tests comprise several tests. How the test is evaluated depends upon the type.
If any of the tests comprising the ANY-Multiplex test pass then the ANY-Multiplex test passes.
Only if all of the tests comprising the ALL-Multiplex test pass will the ALL-Multiplex test pass.
All licenses are defined as ANY-Multiplex tests. Licenses therefore be uses as tests within other tests. However, this only makes sense in the context of an ALL-Multiplex test.