You are here

public function InlineFormManager::createInstance in Commerce Core 8.2

Return value

\Drupal\commerce\Plugin\Commerce\InlineForm\InlineFormInterface The inline form plugin.

Overrides PluginManagerBase::createInstance

File

src/InlineFormManager.php, line 46

Class

InlineFormManager
Manages discovery and instantiation of inline form plugins.

Namespace

Drupal\commerce

Code

public function createInstance($plugin_id, array $configuration = [], EntityInterface $entity = NULL) {
  $plugin = parent::createInstance($plugin_id, $configuration);
  if ($plugin instanceof EntityInlineFormInterface) {
    if (!$entity) {
      throw new \RuntimeException(sprintf('The %s inline form requires an entity.', $plugin_id));
    }
    $plugin
      ->setEntity($entity);
  }

  // Guard against plugins with an incorrect base class / interface.
  if ($entity) {
    assert($plugin instanceof EntityInlineFormInterface);
  }
  return $plugin;
}