/** * Returns true if the specified version is valid (can be added) to the collection. Otherwise, it MUST throw * an exception. * * @param VersionInterface $version * * @return bool * * @throws CollectionException * @throws \Baleen\Migrations\Exception\Version\Collection\AlreadyExistsException */ public function validate(VersionInterface $version) { if (!$version->isMigrated()) { throw new CollectionException('Invalid version specified. This collection only accepts versions that are migrated.'); } return parent::validate($version); }
/** * @inheritdoc */ public final function update(VersionInterface $version) { if ($version->isMigrated()) { $result = $this->save($version); } else { $result = $this->delete($version); } return $result; }
/** * Returns true if the operation is forced, or if the direction is the opposite to the state of the migration. * * @param VersionInterface $version * @param OptionsInterface $options * * @return bool */ protected function shouldMigrate(VersionInterface $version, OptionsInterface $options) { return $options->isForced() || $options->isDirectionUp() ^ $version->isMigrated(); // direction is opposite to state }