Using the "and" operator, myDog.name is coerced to Boolean. If it is null or "" then it will return false. Otherwise, it will call Boolean.valueOf. Check the API for Boolean.valueOf, and you'll see that : . you get true if the String passed is "true" (not case sensitive) . you get false otherwise
So unless your dog's name is "True", the result will be "false".