protected function getTagData($tags, $byIntersect = false) {
		if (is_array($tags)) {
			$tagsData = $this->getTagHolderBackend()->getMany($tags);
			
			if (empty($tagsData)) {
				return;
			}
			
			if ($byIntersect) {
				$tagData = call_user_func_array('array_intersect', $tagsData);
				
				if (empty($tagData)) {
					return;
				}
			} else {
				$tagData = array_unique(call_user_func_array('array_merge', $tagsData));
			}
		} else {
			$tagData = $this->getTagHolderBackend()->get($tags);

			if (empty($tagData)) {
				return;
			}
		}
		
		return $tagData;
	}