class Client implements ConcurrencyControlledEntity {

    public boolean profileSearch(String searchParam) {
        String lowerSearch = searchParam.toLowerCase();
        String[] splitSearchItems = WHITE_SPACE.split(lowerSearch);

        Collection<String> searched = new ArrayList<>(Arrays.asList(splitSearchItems));

        Collection<String> names = this.splitNames();
        Collection<String> lowercaseNames = new ArrayList<>();
        for (String name : names) {
            lowercaseNames.add(name.toLowerCase());
        }

        Collection<String> matchedNames = new ArrayList<>();

        for (String searchedParam : searched) {
            for (String name : lowercaseNames) {

                if (name.startsWith(searchedParam)) {
                    matchedNames.add(name);
                    break;
                }
            }

        }
        return matchedNames.size() == searched.size();
    }

    public  Client();
    public  Client(int uid);
    public  Client(String firstName, String middleName, String lastName, LocalDate dateOfBirth, Integer uid);

}