From 903ad34c645d00735d4f25969796021874d7e7a7 Mon Sep 17 00:00:00 2001 From: Arthur Bols Date: Mon, 7 May 2018 17:18:13 +0200 Subject: [PATCH] added everything to program factory --- OGP1718-Worms/src/worms/facade/Facade.java | 3 +- OGP1718-Worms/src/worms/model/Program.java | 15 +++ .../src/worms/programs/Procedure.java | 19 +++- .../src/worms/programs/ProgramFactory.java | 31 +++--- .../src/worms/programs/Statement.java | 95 +++++++++++++++++-- 5 files changed, 137 insertions(+), 26 deletions(-) diff --git a/OGP1718-Worms/src/worms/facade/Facade.java b/OGP1718-Worms/src/worms/facade/Facade.java index 4765f77..017d456 100644 --- a/OGP1718-Worms/src/worms/facade/Facade.java +++ b/OGP1718-Worms/src/worms/facade/Facade.java @@ -6,6 +6,7 @@ import worms.model.Food; import worms.model.Projectile; import worms.model.Worm; import worms.programs.IProgramFactory; +import worms.programs.ProgramFactory; import worms.util.IllegalNameException; import worms.util.ModelException; import worms.util.Coordinate; @@ -1025,7 +1026,7 @@ public class Facade implements IFacade { */ @Override public IProgramFactory createProgramFactory() throws ModelException { - return null; + return new ProgramFactory(); } /** diff --git a/OGP1718-Worms/src/worms/model/Program.java b/OGP1718-Worms/src/worms/model/Program.java index 44c009a..295fc1b 100644 --- a/OGP1718-Worms/src/worms/model/Program.java +++ b/OGP1718-Worms/src/worms/model/Program.java @@ -1,8 +1,23 @@ package worms.model; +import worms.programs.Procedure; +import worms.programs.Statement; + +import java.util.List; + public class Program { + private final List procedureList; + + private final Statement main; + + public Program(List proc, Statement main) { + this.procedureList = proc; + this.main = main; + + } + public Worm getWorm() { return null; diff --git a/OGP1718-Worms/src/worms/programs/Procedure.java b/OGP1718-Worms/src/worms/programs/Procedure.java index 6e0a9f2..d7b28dd 100644 --- a/OGP1718-Worms/src/worms/programs/Procedure.java +++ b/OGP1718-Worms/src/worms/programs/Procedure.java @@ -2,5 +2,22 @@ package worms.programs; import worms.model.Program; -public abstract class Procedure extends Program { +public class Procedure extends Program { + + + private final String name; + private final Statement body; + + public Procedure(String name, Statement body) { + this.name = name; + this.body = body; + } + + public String getName() { + return name; + } + + public Statement getBody() { + return body; + } } diff --git a/OGP1718-Worms/src/worms/programs/ProgramFactory.java b/OGP1718-Worms/src/worms/programs/ProgramFactory.java index f46b834..4f44090 100644 --- a/OGP1718-Worms/src/worms/programs/ProgramFactory.java +++ b/OGP1718-Worms/src/worms/programs/ProgramFactory.java @@ -1,6 +1,5 @@ package worms.programs; -import com.sun.org.apache.xpath.internal.operations.Bool; import worms.model.GameObject; import worms.model.Program; import worms.model.Worm; @@ -8,7 +7,6 @@ import worms.util.ModelException; import worms.util.MustNotImplementException; import worms.programs.Expression; -import javax.swing.plaf.nimbus.State; import java.util.List; public class ProgramFactory implements IProgramFactory { @@ -22,8 +20,7 @@ public class ProgramFactory implements IProgramFactory procs, Statement main) throws ModelException { - System.out.println("create program"); - return new Program(); + return new Program(procs, main); } // TODO checken of dit moet @@ -48,7 +45,7 @@ public class ProgramFactory implements IProgramFactory statements, SourceLocation sourceLocation) throws ModelException { - return null; + return new Statement(Statement.Type.BLOCK, statements); } /** @@ -153,7 +150,7 @@ public class ProgramFactory implements IProgramFactory