private function checkAttributeTypes($latitudeAttribute, $longitudeAttribute, $singleAttribute)
    {
        if (null !== $singleAttribute) {
            $this->checkMultiAttribute($singleAttribute);
            $this->mode = self::MODE_SINGLE;
            return;
        }

        if ((null !== $latitudeAttribute) && (null !== $longitudeAttribute)) {
            $this->checkSingleAttributes($latitudeAttribute, $longitudeAttribute);
            $this->mode = self::MODE_MULTI;
            return;
        }

        // If we have no hit throw an exception.
        throw new \InvalidArgumentException(
            'Need a pair of valid latitude and longitude attributes or a valid geolocation attribute.'
        );
    }