class DeviceInfoReport extends Report implements Serializable {

    public final boolean matchesKernelInfo(final Iterable<TpmWhiteListBaseline> tpmBaselines) {
        boolean match = false;

        if (tpmBaselines != null) {
            // Retrieve the fields which indicate a kernel update
            final OSInfo kernelOSInfo = getOSInfo();

            // perform the search
            for (final TpmWhiteListBaseline baseline : tpmBaselines) {
                final OSInfo baselineOSInfo = baseline.getOSInfo();
                if(baselineOSInfo.getOSName().equalsIgnoreCase(kernelOSInfo.getOSName())
                    && baselineOSInfo.getOSVersion().equalsIgnoreCase(kernelOSInfo.getOSVersion())) {
                    match = true;
                    break;
                }
            }
        }

        return match;
    }

    public  DeviceInfoReport();
    public  DeviceInfoReport(final NetworkInfo networkInfo, final OSInfo osInfo,
                            final FirmwareInfo firmwareInfo, final HardwareInfo hardwareInfo,
                            final TPMInfo tpmInfo);
    public  DeviceInfoReport(final NetworkInfo networkInfo, final OSInfo osInfo,
                            final FirmwareInfo firmwareInfo, final HardwareInfo hardwareInfo,
                            final TPMInfo tpmInfo, final String clientApplicationVersion);

}