public function addPropertyCriteria($item)
    {
        if (!($item instanceof PropertyCriteria)) {
            if (is_array($item)) {
                try {
                    $item = new PropertyCriteria($item);
                } catch (\Exception $e) {
                    trigger_error('Could not auto-instantiate PropertyCriteria. ' . $e->getMessage(), E_USER_WARNING);
                }
            } else {
                trigger_error('Array parameter item is not of expected type "PropertyCriteria"!', E_USER_WARNING);
            }
        }
        $this->properties[] = $item;

        return $this;
    }