protected function canDecorate(Property $property)
	{
		$data_type = $property->getDataType();

		if ( !$data_type || $property->isSimpleDataType() || interface_exists($data_type) ) {
			return false;
		}

		if ( !class_exists($data_type) ) {
			$message = '"%s" element not recognised. "%s" class not found';
			throw new PageFactoryException(
				sprintf($message, $property, $data_type),
				PageFactoryException::TYPE_UNKNOWN_CLASS
			);
		}

		return true;
	}