/**
* {@inheritDoc}
*
* @api
*/
public function checkin($absPath)
{
if ($node = $this->objectManager->getCachedNode($absPath)) {
if ($node->isModified()) {
throw new InvalidItemStateException("You may not checkin node at {$absPath} with pending unsaved changes");
}
}
$version = $this->objectManager->checkin($absPath);
$version->setCachedPredecessorsDirty();
if ($history = $this->objectManager->getCachedNode(PathHelper::getParentPath($version->getPath()), 'Version\\VersionHistory')) {
$history->notifyHistoryChanged();
}
if ($node) {
// OPTIMIZE: set property jcr:isCheckedOut on node directly? but without triggering write on save()
$node->setDirty();
}
return $version;
}