diff --git a/Task_B/src/main/IBuild.java b/Task_B/src/main/IBuild.java new file mode 100644 index 0000000000000000000000000000000000000000..434f5f87bfb1e584830bb1fd674aa806e83f8c02 --- /dev/null +++ b/Task_B/src/main/IBuild.java @@ -0,0 +1,7 @@ +package main; + +import domain.BuildConfig; + +public interface IBuild { + public void build(int debuglevel); +} diff --git a/Task_B/src/main/IBuildConfigReader.java b/Task_B/src/main/IBuildConfigReader.java new file mode 100644 index 0000000000000000000000000000000000000000..1e7c42002f29ec85131348e6b9f32635066fe69b --- /dev/null +++ b/Task_B/src/main/IBuildConfigReader.java @@ -0,0 +1,7 @@ +package main; + +import domain.BuildConfig; + +public interface IBuildConfigReader { + public BuildConfig getBuildConfig(); +} diff --git a/Task_B/src/main/IBuildConfigReaderFactory.java b/Task_B/src/main/IBuildConfigReaderFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..08ad6e0e6a5cd96377a58b6bb55d2cc72e92ee87 --- /dev/null +++ b/Task_B/src/main/IBuildConfigReaderFactory.java @@ -0,0 +1,5 @@ +package main; + +public interface IBuildConfigReaderFactory { + public IBuildConfigReader createBuildConfigReader(String buildFileName); +} diff --git a/Task_B/src/main/IBuildFactory.java b/Task_B/src/main/IBuildFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..f76947d9e583793a00e0757f3ae24b1b51d77121 --- /dev/null +++ b/Task_B/src/main/IBuildFactory.java @@ -0,0 +1,7 @@ +package main; + +import domain.BuildConfig; + +public interface IBuildFactory { + public IBuild createBuild(String buildFileName, BuildConfig buildConfig, String targetName); +} diff --git a/Task_B/src/main/Main.java b/Task_B/src/main/Main.java index e67fc3c4e4d4cbc0e3c4ef9768ac706aa279f2b7..8e4c885d643fe52aac955f8aad67c58629cdb0be 100755 --- a/Task_B/src/main/Main.java +++ b/Task_B/src/main/Main.java @@ -10,13 +10,27 @@ import yaml.YamlBuildConfigurationReader; public class Main { public static void main(String[] args) { - XMLBuildConfigurationReader buildConfigurationReader = new XMLBuildConfigurationReader("build.xml"); - final Project xmlProject = buildConfigurationReader.getProject(); - Build build = new Build(xmlProject); - build.build(1, "dist"); - YamlBuildConfigurationReader yamlConfigReader = new YamlBuildConfigurationReader("build.yaml"); - final BuildConfig yamlBuildConfig = yamlConfigReader.getBuildConfig(); - Compile compile = new Compile(yamlBuildConfig, "dist"); - compile.build(1); + +// XMLBuildConfigurationReader buildConfigurationReader = new XMLBuildConfigurationReader("build.xml"); +// final Project xmlProject = buildConfigurationReader.getProject(); +// Build build = new Build(xmlProject); +// build.build(1, "dist"); +// YamlBuildConfigurationReader yamlConfigReader = new YamlBuildConfigurationReader("build.yaml"); +// final BuildConfig yamlBuildConfig = yamlConfigReader.getBuildConfig(); +// Compile compile = new Compile(yamlBuildConfig, "dist"); +// compile.build(1); + + final String target = "dist"; + buildTarget("build.xml", target); + buildTarget("build.yaml", target); + } + + private static void buildTarget(String buildFileName, String target) { + MyBuildConfigReaderFactory buildConfigReaderFactory = new MyBuildConfigReaderFactory(); + IBuildConfigReader buildConfigReader = buildConfigReaderFactory.createBuildConfigReader(buildFileName); + BuildConfig buildConfig = buildConfigReader.getBuildConfig(); + MyBuildFactory builderFactory = new MyBuildFactory(); + IBuild build = builderFactory.createBuild(buildFileName, buildConfig, target); + build.build(1); } } diff --git a/Task_B/src/main/MyBuildConfigReaderFactory.java b/Task_B/src/main/MyBuildConfigReaderFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..5dddcd888a57aaccd5450d8f595919175f536b05 --- /dev/null +++ b/Task_B/src/main/MyBuildConfigReaderFactory.java @@ -0,0 +1,22 @@ +package main; + +import xml.XMLBuildConfigurationReader; +import yaml.YamlBuildConfigurationReader; + +public class MyBuildConfigReaderFactory implements IBuildConfigReaderFactory { + + @Override + public IBuildConfigReader createBuildConfigReader(String buildFileName) { + String fileNameExtension = buildFileName.substring(buildFileName.lastIndexOf(".")); + if (fileNameExtension.equals(".yaml")) { + return new MyYamlBuildConfigReader(new YamlBuildConfigurationReader(buildFileName)); + + } else if (fileNameExtension.equals(".xml")) { + return new MyXMLBuildConfigReader(new XMLBuildConfigurationReader(buildFileName)); + + } else { + return null; + } + } + +} diff --git a/Task_B/src/main/MyBuildFactory.java b/Task_B/src/main/MyBuildFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..4d301e76ebf52466bcea22ce600d50bc95b880fe --- /dev/null +++ b/Task_B/src/main/MyBuildFactory.java @@ -0,0 +1,22 @@ +package main; + +import domain.BuildConfig; +import xml.Build; +import yaml.Compile; + +public class MyBuildFactory implements IBuildFactory { + + @Override + public IBuild createBuild(String buildFileName, BuildConfig buildConfig, String targetName) { + String fileNameExtension = buildFileName.substring(buildFileName.lastIndexOf(".")); + if (fileNameExtension.equals(".yaml")) { + return new MyYamlBuild(new Compile(buildConfig, targetName)); + + } else if (fileNameExtension.equals(".xml")) { + return new MyXMLBuild(new Build(buildConfig.getProject()), targetName); + + } else { + return null; + } + } +} diff --git a/Task_B/src/main/MyXMLBuild.java b/Task_B/src/main/MyXMLBuild.java new file mode 100644 index 0000000000000000000000000000000000000000..8d094a540fd5dced5d6e69709d5098b7bd6335ae --- /dev/null +++ b/Task_B/src/main/MyXMLBuild.java @@ -0,0 +1,19 @@ +package main; + +import xml.Build; + +public class MyXMLBuild implements IBuild { + + Build adaptee; + String targetName; + + public MyXMLBuild(Build xmlBuild, String targetName) { + adaptee = xmlBuild; + this.targetName = targetName; + } + + public void build(int debuglevel) { + adaptee.build(debuglevel, targetName); + } + +} diff --git a/Task_B/src/main/MyXMLBuildConfigReader.java b/Task_B/src/main/MyXMLBuildConfigReader.java new file mode 100644 index 0000000000000000000000000000000000000000..4aad5be985c77bfd4b7362bf3dd7e8e2d5e2c11d --- /dev/null +++ b/Task_B/src/main/MyXMLBuildConfigReader.java @@ -0,0 +1,22 @@ +package main; + +import domain.BuildConfig; +import xml.XMLBuildConfigurationReader; + +public class MyXMLBuildConfigReader implements IBuildConfigReader { + + private XMLBuildConfigurationReader adaptee; + + public MyXMLBuildConfigReader(XMLBuildConfigurationReader buildConfigReader) { + adaptee = buildConfigReader; + } + + @Override + public BuildConfig getBuildConfig() { + BuildConfig buildConfig = new BuildConfig(); + buildConfig.setProject(adaptee.getProject()); + + return buildConfig; + } + +} diff --git a/Task_B/src/main/MyYamlBuild.java b/Task_B/src/main/MyYamlBuild.java new file mode 100644 index 0000000000000000000000000000000000000000..7e1027b6f3c68c99f9445f846c368768e45aae71 --- /dev/null +++ b/Task_B/src/main/MyYamlBuild.java @@ -0,0 +1,17 @@ +package main; + +import yaml.Compile; + +public class MyYamlBuild implements IBuild { + + Compile adaptee; + + public MyYamlBuild(Compile yamlCompile) { + adaptee = yamlCompile; + } + + public void build(int debuglevel) { + adaptee.build(debuglevel); + } + +} diff --git a/Task_B/src/main/MyYamlBuildConfigReader.java b/Task_B/src/main/MyYamlBuildConfigReader.java new file mode 100644 index 0000000000000000000000000000000000000000..9e4d4fd8c5460806e00c446e9857de6365808ee8 --- /dev/null +++ b/Task_B/src/main/MyYamlBuildConfigReader.java @@ -0,0 +1,20 @@ +package main; + +import domain.BuildConfig; +import yaml.YamlBuildConfigurationReader; + +public class MyYamlBuildConfigReader implements IBuildConfigReader { + + private YamlBuildConfigurationReader adaptee; + + public MyYamlBuildConfigReader(YamlBuildConfigurationReader buildConfigReader) { + adaptee = buildConfigReader; + } + + @Override + public BuildConfig getBuildConfig() { + + return adaptee.getBuildConfig(); + } + +}