diff options
Diffstat (limited to 'lib/sdp/ao_object_setter.d')
-rw-r--r-- | lib/sdp/ao_object_setter.d | 96 |
1 files changed, 91 insertions, 5 deletions
diff --git a/lib/sdp/ao_object_setter.d b/lib/sdp/ao_object_setter.d index ff76143..ce4611d 100644 --- a/lib/sdp/ao_object_setter.d +++ b/lib/sdp/ao_object_setter.d @@ -1,10 +1,21 @@ -/* +/+ object setter ao_object_setter.d -*/ ++/ mixin template ObjectSetters() { - class ObjectAbstractSet { + struct ObjectAbstractSet { import std.conv : to; + mixin Structs; + ObjComposite contents_comment_new(in string object) { + ObjComposite object_set; + object_set.use = "comment"; + object_set.of = "comment"; + object_set.is_a = "comment"; + object_set.object = object; + // does not have .attrib; + // does not have .ocn + return object_set; + } string[string] contents_comment(in string object) { string[string] object_set; object_set["use"] = "comment"; @@ -13,6 +24,28 @@ mixin template ObjectSetters() { object_set["obj"] = object; return object_set; } + ObjComposite contents_heading_new( + in int type, + in string object, + in string attrib, + in int ocn, + in string lev, + in string lvn, + in string lcn, + ) { + ObjComposite object_set; + object_set.use = "content"; + object_set.of = "para"; + object_set.is_a = "heading"; + object_set.object = object; + object_set.ocn = (ocn==0) ? "" : to!string(ocn); + object_set.attrib = attrib; + object_set.heading.type = to!string(type); + object_set.heading.lev = to!string(lev); + object_set.heading.lvn = to!string(lvn); + object_set.heading.lcn = to!string(lcn); + return object_set; + } string[string] contents_heading( in int type, in string object, @@ -35,8 +68,29 @@ mixin template ObjectSetters() { object_set["attrib"] = attrib; return object_set; } + ObjComposite contents_para_new( + in string is_a, + in string object, + in string attrib, + in int ocn, + in string indent_first, + in string indent_second, + in bool bullet + ) { + ObjComposite object_set; + object_set.use = "content"; + object_set.of = "para"; + object_set.is_a = "heading"; + object_set.object = object; + object_set.ocn = (ocn==0) ? "" : to!string(ocn); + object_set.attrib = attrib; + object_set.para.indent_first = indent_first; + object_set.para.indent_second = indent_second; + object_set.para.bullet = to!string(bullet); + return object_set; + } string[string] contents_para( - in string type, + in string is_a, in string object, in string attrib, in int ocn, @@ -47,7 +101,7 @@ mixin template ObjectSetters() { string[string] object_set; object_set["use"] = "content"; object_set["of"] = "para"; - object_set["is"] = type; + object_set["is"] = is_a; object_set["obj"] = object; object_set["ocn"] = (ocn==0) ? "" : to!string(ocn); object_set["indent_first"] = indent_first; @@ -56,6 +110,22 @@ mixin template ObjectSetters() { object_set["attrib"] = attrib; return object_set; } + ObjComposite contents_block_new( + in string type, + in string object, + in string attrib, + in int ocn + ) { + ObjComposite object_set; + // does not have .attrib; + object_set.use = "content"; + object_set.of = "block"; + object_set.is_a = type; + object_set.object = object; + object_set.ocn = (ocn==0) ? "" : to!string(ocn); + object_set.attrib = attrib; + return object_set; + } string[string] contents_block( in string type, in string object, @@ -71,6 +141,22 @@ mixin template ObjectSetters() { object_set["attrib"] = attrib; return object_set; } + ObjComposite contents_block_ocn_string_new( + in string type, + in string object, + in string ocn, + in string node + ) { + ObjComposite object_set; + object_set.use = "content"; + object_set.of = "block"; + object_set.is_a = type; + object_set.object = object; + object_set.ocn = ocn; + object_set.block_ocn_string.node = node; + // object_set.attrib = attrib; + return object_set; + } string[string] contents_block_ocn_string( in string type, in string object, |