diff --git a/OSCADSharp/OSCADSharp/BlockStatementObject.cs b/OSCADSharp/OSCADSharp/BlockStatementObject.cs new file mode 100644 index 0000000..273a2ab --- /dev/null +++ b/OSCADSharp/OSCADSharp/BlockStatementObject.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OSCADSharp +{ + + /// + /// A statement that has multiple child nodes, whose ToString output + /// is more or less just an aggregate of the children + /// + internal class BlockStatementObject : OSCADObject + { + private string outerStatement; + private IEnumerable children; + + internal BlockStatementObject(string outerStatement, IEnumerable children) + { + this.outerStatement = outerStatement; + this.children = children; + } + + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + foreach (var child in this.children) + { + sb.AppendLine(child.ToString()); + } + + var formatter = new BlockFormatter(this.outerStatement, sb.ToString()); + return formatter.ToString(); + } + } +} diff --git a/OSCADSharp/OSCADSharp/Booleans/Union.cs b/OSCADSharp/OSCADSharp/Booleans/Union.cs index 48b6f65..23b42d9 100644 --- a/OSCADSharp/OSCADSharp/Booleans/Union.cs +++ b/OSCADSharp/OSCADSharp/Booleans/Union.cs @@ -9,30 +9,14 @@ namespace OSCADSharp.Booleans /// /// A union of child nodes. This is the sum of all children (logical or). /// - internal class Union : OSCADObject + internal class Union : BlockStatementObject { - private IEnumerable children; - /// /// Create a union that is the combination of all children /// /// OSCADObjects to combine - internal Union(IEnumerable children) + internal Union(IEnumerable children) : base("union()", children) { - this.children = children; - } - - public override string ToString() - { - string unionCommand = "union()"; - StringBuilder sb = new StringBuilder(); - foreach (var child in this.children) - { - sb.AppendLine(child.ToString()); - } - - var formatter = new BlockFormatter(unionCommand, sb.ToString()); - return formatter.ToString(); } } } diff --git a/OSCADSharp/OSCADSharp/OSCADSharp.csproj b/OSCADSharp/OSCADSharp/OSCADSharp.csproj index 1ad1a1e..f84b9c2 100644 --- a/OSCADSharp/OSCADSharp/OSCADSharp.csproj +++ b/OSCADSharp/OSCADSharp/OSCADSharp.csproj @@ -41,6 +41,7 @@ +