Skip to content
Snippets Groups Projects
Commit 6849c968 authored by Bastian Hoffmann's avatar Bastian Hoffmann
Browse files

solution task B

parent 1fafabff
No related branches found
No related tags found
No related merge requests found
package main;
import domain.BuildConfig;
public interface IBuild {
public void build(int debuglevel);
}
package main;
import domain.BuildConfig;
public interface IBuildConfigReader {
public BuildConfig getBuildConfig();
}
package main;
public interface IBuildConfigReaderFactory {
public IBuildConfigReader createBuildConfigReader(String buildFileName);
}
package main;
import domain.BuildConfig;
public interface IBuildFactory {
public IBuild createBuild(String buildFileName, BuildConfig buildConfig, String targetName);
}
......@@ -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);
}
}
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;
}
}
}
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;
}
}
}
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);
}
}
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;
}
}
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);
}
}
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();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment