You have to put up a cross matrix and see if you have any holes in it and with all this in one line you might miss something.
I would suggest that you break it down to at least two different ifs, one for all terminating controls (all items that may not be null) and one for the check if value present.