in apache-rat-core/src/main/java/org/apache/rat/analysis/matchers/CopyrightMatcher.java [117:152]
public CopyrightMatcher(final String id, final String start, final String end, final String owner) {
super(id);
if (StringUtils.isBlank(start) && !StringUtils.isBlank(end)) {
throw new ConfigurationException("'end' may not be set if 'start' is not set.");
}
assertNumber("start", start);
assertNumber("end", end);
this.start = start;
this.end = end;
this.owner = owner;
String dateDefn = "";
if (StringUtils.isNotEmpty(start)) {
if (StringUtils.isNotEmpty(end)) {
dateDefn = String.format(DOUBLE_DATE_FMT, this.start, this.end);
} else {
dateDefn = this.start;
}
}
if (StringUtils.isEmpty(owner)) {
// no owner
if (StringUtils.isEmpty(dateDefn)) {
dateDefn = ARBITRARY_DATE;
}
dateOwnerPattern = Pattern.compile(String.format(ONE_PART, dateDefn));
ownerDatePattern = null;
} else {
if (StringUtils.isEmpty(dateDefn)) {
dateDefn = String.format(DOUBLE_DATE_FMT, "(((" + ARBITRARY_DATE, ")?" + ARBITRARY_DATE + "))?");
dateOwnerPattern = Pattern.compile(String.format(TWO_PART, dateDefn, owner));
ownerDatePattern = Pattern.compile(String.format(ONE_PART, owner));
} else {
dateOwnerPattern = Pattern.compile(String.format(TWO_PART, dateDefn, owner));
ownerDatePattern = Pattern.compile(String.format(TWO_PART, owner, dateDefn));
}
}
}