Another question is, should this be the generic `PHPCRException` or perhaps an `IdException` would be better?

For example, we could do something like this in `Doctrine\ODM\PHPCR\Id\IdException`:

```php
    public static function illegalNodename($fieldName)
    {
        $message = sprintf(
            'The node name "%s" contains the path separator "/"',
            $fieldName
        );

        return new self($message);
    }
```

And then invoke it:

```php
    throw IdException::illegalNodename($class->nodename);
```

This might make sense only if we do put the logic in `ParentIdGenerator`.