slug_generator = $slug_generator; } /** * @inheritdoc * @since 0.8 */ public function create(Name $name, Slug $slug, Type $type, Unit $unit = null) { do_action('aff_detail_template_factory_before_create'); $detail_template = new Detail_Template($name, $slug, $type, $unit); $detail_template = apply_filters('aff_detail_template_factory_create', $detail_template); do_action('aff_detail_template_factory_after_create', $detail_template); return $detail_template; } /** * @inheritdoc * @since 0.8 */ public function create_from_name(Name $name, Type $type, Unit $unit = null) { $detail_template = $this->create( $name, $this->slug_generator->generate_from_name($name), $type, $unit ); return $detail_template; } /** * @inheritdoc * @since 0.9 */ public function create_from_detail(Detail $detail) { $detail_template = $this->create( $detail->get_name(), $detail->get_slug(), $detail->get_type(), $detail->get_unit() ); return $detail_template; } }