class ImaAcceptableHashRecordMatcher extends ImaRecordMatcher<IMABaselineRecord> {

    @Override
    public IMAMatchStatus<IMABaselineRecord> contains(final IMAMeasurementRecord record) {
        Preconditions.checkArgument(record != null, "Cannot match on null record.");

        final Set<IMABaselineRecord> matchingRecords = getRelatedBaselineRecordsByHash(record);

        if (matchingRecords.isEmpty()) {
            return new IMAMatchStatus<>(record, ReportMatchStatus.UNKNOWN, getImaBaseline());
        }

        return new IMAMatchStatus<>(
                record,
                ReportMatchStatus.MATCH,
                matchingRecords,
                getImaBaseline()
        );
    }

    public  ImaAcceptableHashRecordMatcher(
            final Collection<IMABaselineRecord> records,
            final IMAPolicy imaPolicy,
            final ImaBaseline imaBaseline);

}