diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs index 203378d..d58c0c5 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/Value/ValueFactory.cs @@ -2,14 +2,16 @@ using System; namespace Advanced_Software_Engineering.Verbs.Value { - class ValueFactory { + + public class ValueFactory { + /// /// Creates a constant Value to be used later during execution /// /// Text representation of the value /// What type the value should be /// - public IValue CreateValue(string value, string type) { + public static IValue CreateValue(string value, string type) { switch (type) { case "int": return new IntValue(ValueHelper.ConvertToInt(value)); @@ -17,14 +19,30 @@ namespace Advanced_Software_Engineering.Verbs.Value { case "double": return new DoubleValue(ValueHelper.ConvertToDouble(value)); + case "color": + return new ColorValue(ValueHelper.TextToColor(value)); + + case "bool": + return new BoolValue(ValueHelper.ConvertToBool(value)); + + case "expression": + return new Exception(ValueHelper.ConvertToExpression(value)); + default: throw new Exception("Unknown expected type: " + type.ToString()); - } } + public static IValue CreateValue(bool b) { + return new BoolValue(b); + } + public static IValue CreateValue(double d) { + return new DoubleValue(d); + } - + public static IValue CreateValue(int i) { + return new IntValue(i); + } } -} +} \ No newline at end of file