/**
     * {@inheritDoc}
     */
    protected function configure()
    {
        parent::configure();

        $this
            ->setName('phpcr:node:remove')
            ->setDescription('Remove content from the repository')
            ->addArgument('path', InputArgument::REQUIRED, 'Path of the node to purge')
            ->addOption('force', null, InputOption::VALUE_NONE, 'Use to bypass the confirmation dialog')
            ->addOption('only-children', null, InputOption::VALUE_NONE, 'Use to only purge children of specified path')
            ->setHelp(<<<EOF
The <info>phpcr:node:remove</info> command will remove the given node or the
children of the given node according to the options given.

Remove specified node and its children:

    $ php bin/phpcr phpcr:node:remove /cms/content/blog

Remove only the children of the specified node

    $ php bin/phpcr phpcr:node:remove /cms/content/blog --only-children
EOF
            )
        ;
    }
    /**
     * {@inheritDoc}
     */
    protected function configure()
    {
        parent::configure();
        $this->setName('phpcr:workspace:purge')->setDescription('Remove all nodes from a workspace')->addOption('force', null, InputOption::VALUE_NONE, 'Use to bypass the confirmation dialog')->setHelp(<<<EOF
The <info>phpcr:workspace:purge</info> command removes all nodes except the
system nodes and all non-system properties of the root node from the workspace.
EOF
);
    }
    /**
     * {@inheritDoc}
     */
    protected function configure()
    {
        parent::configure();
        $this->setName('phpcr:workspace:export')->addArgument('filename', InputArgument::REQUIRED, 'The xml file to export to')->addOption('path', 'p', InputOption::VALUE_OPTIONAL, 'Path of the node to export', '/')->addOption('skip_binary', null, InputOption::VALUE_OPTIONAL, 'Set to "yes" to skip binaries', "no")->addOption('recurse', null, InputOption::VALUE_OPTIONAL, 'Set to "no" to prevent recursion', "yes")->setDescription('Export nodes from the repository, either to the JCR system view format or the document view format')->setHelp(<<<EOF
The <info>export</info> command uses the PHPCR SessionInterface::exportSystemView
method to export parts of the repository into an XML document.

If the <info>path</info> option is set, given path is exported.
Otherwise the entire repository is exported.
EOF
);
    }
    /**
     * {@inheritDoc}
     */
    protected function configure()
    {
        parent::configure();

        $this->setName('phpcr:workspace:query')
            ->addArgument('query', InputArgument::REQUIRED, 'A query statement to execute')
            ->addOption('language', 'l', InputOption::VALUE_OPTIONAL, 'The query language (e.g. jcr-sql2', 'jcr-sql2')
            ->addOption('limit', null, InputOption::VALUE_OPTIONAL, 'The query limit', 0)
            ->addOption('offset', null, InputOption::VALUE_OPTIONAL, 'The query offset', 0)
            ->setDescription('Execute a JCR SQL2 statement')
            ->setHelp("The <info>query</info> command executes a JCR query statement on the content repository");
    }
    /**
     * {@inheritDoc}
     */
    protected function configure()
    {
        parent::configure();
        $this->setName('phpcr:workspace:import')->addArgument('filename', null, 'The xml file to import')->addOption('parentpath', 'p', InputOption::VALUE_OPTIONAL, 'Repository path to the parent where to import the file contents', '/')->setDescription('Import xml data into the repository, either in JCR system view format or arbitrary xml')->setHelp(<<<EOF
The <info>import</info> command uses the PHPCR SessionInterface::importXml method
to import an XML document into the repository. If the document is in the JCR
system view format, it is interpreted according to the spec, otherwise it is
treated as document view format, meaning XML elements are translated to nodes
and XML attributes into properties.

If the <info>parentpath</info> option is set, the document is imported to that
path. Otherwise the document is imported at the repository root.
EOF
);
    }