From b404c24bc5e0652e759ca7908aa133f4a04cf97f Mon Sep 17 00:00:00 2001
From: dyszczo <krzysztof@dyszczyk.pl>
Date: Fri, 18 May 2018 15:38:05 +0200
Subject: [PATCH] build director

---
 src/BuildDirector/LegacyBuildDirector.php   | 28 +++++++++++++++++++++
 src/Builder/AbstractBuilder.php             |  8 +++---
 src/Plugin/Exception/ClassAlreadyExists.php |  8 ------
 src/Plugin/Exception/ClassNotExists.php     |  8 ------
 4 files changed, 33 insertions(+), 19 deletions(-)
 create mode 100644 src/BuildDirector/LegacyBuildDirector.php
 delete mode 100644 src/Plugin/Exception/ClassAlreadyExists.php
 delete mode 100644 src/Plugin/Exception/ClassNotExists.php

diff --git a/src/BuildDirector/LegacyBuildDirector.php b/src/BuildDirector/LegacyBuildDirector.php
new file mode 100644
index 0000000..5fdae46
--- /dev/null
+++ b/src/BuildDirector/LegacyBuildDirector.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace WPDesk\PluginBuilder\BuildDirector;
+
+use WPDesk\PluginBuilder\Builder\AbstractBuilder;
+use WPDesk\PluginBuilder\Plugin\AbstractPlugin;
+
+class LegacyBuildDirector {
+	/** @var AbstractBuilder */
+	private $builder;
+
+	public function __construct(AbstractBuilder $builder) {
+		$this->builder = $builder;
+	}
+
+	public function buildPlugin() {
+		$this->builder->build_plugin();
+		$this->builder->init_plugin();
+		$this->builder->store_plugin();
+	}
+
+	/**
+	 * @return AbstractPlugin
+	 */
+	public function getPlugin() {
+		return $this->builder->get_plugin();
+	}
+}
\ No newline at end of file
diff --git a/src/Builder/AbstractBuilder.php b/src/Builder/AbstractBuilder.php
index 16c0ec4..ef1a4ea 100644
--- a/src/Builder/AbstractBuilder.php
+++ b/src/Builder/AbstractBuilder.php
@@ -2,7 +2,9 @@
 
 namespace WPDesk\PluginBuilder\Builder;
 
-class AbstractBuilder {
+use WPDesk\PluginBuilder\Plugin\AbstractPlugin;
+
+abstract class AbstractBuilder {
 	/**
 	 * Create plugin class
 	 */
@@ -23,9 +25,9 @@ class AbstractBuilder {
 
 	/**
 	 * Return built plugin
+	 * @return AbstractPlugin
 	 */
-	public function get_plugin() {
-	}
+	abstract function get_plugin();
 
 	/**
 	 * Set settings class in plugin
diff --git a/src/Plugin/Exception/ClassAlreadyExists.php b/src/Plugin/Exception/ClassAlreadyExists.php
deleted file mode 100644
index 7d05c46..0000000
--- a/src/Plugin/Exception/ClassAlreadyExists.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace WPDesk\PluginBuilder\Plugin\Exception;
-
-class ClassAlreadyExists extends \RuntimeException
-{
-
-}
\ No newline at end of file
diff --git a/src/Plugin/Exception/ClassNotExists.php b/src/Plugin/Exception/ClassNotExists.php
deleted file mode 100644
index a10987b..0000000
--- a/src/Plugin/Exception/ClassNotExists.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace WPDesk\PluginBuilder\Plugin\Exception;
-
-class ClassNotExists extends \RuntimeException
-{
-
-}
\ No newline at end of file
-- 
GitLab