class BusinessObjectDataSearchHelper {

    public void validateBusinessObjectDataSearchRequest(BusinessObjectDataSearchRequest businessObjectDataSearchRequest)
    {
        Assert.notNull(businessObjectDataSearchRequest, "A business object data search request must be specified.");

        List<BusinessObjectDataSearchFilter> businessObjectDataSearchFilters = businessObjectDataSearchRequest.getBusinessObjectDataSearchFilters();

        Assert.isTrue(CollectionUtils.isNotEmpty(businessObjectDataSearchFilters), "A business object data search filter must be specified.");

        Assert.isTrue(businessObjectDataSearchFilters.size() == 1, "A list of business object data search filters can only have one element.");

        BusinessObjectDataSearchFilter businessObjectDataSearchFilter = businessObjectDataSearchFilters.get(0);
        List<BusinessObjectDataSearchKey> businessObjectDataSearchKeys = businessObjectDataSearchFilter.getBusinessObjectDataSearchKeys();

        Assert.isTrue(CollectionUtils.isNotEmpty(businessObjectDataSearchKeys), "A business object data search key must be specified.");

        Assert.isTrue(businessObjectDataSearchKeys.size() == 1, "A list of business object data search keys can only have one element.");

        validateBusinessObjectDataSearchKey(businessObjectDataSearchKeys.get(0));
    }

}