Adds a child to this object, it's ArchiveObject.name can be used to retrieve it from ArchiveObject.getChild.
Adds a value to this object.
Helper function to add a Value without having to create an ArchiveValue.
Helper function to add multiple ArchiveValues.
Helper function to get a attribute, or throw an exception if the attribute doesn't exist.
Helper function to get a child, or throw an exception if the child doesn't exist.
Helper function to get a value, or throw an exception if the value doesn't exist.
Gets an attribute by name.
Helper function to get an attribute/value as a certain type.
Gets an child by name.
Gets a value by it's index.
Helper function to get an attribute/value as a certain type.
An operator version of ArchiveObject.expectChild.
An operator version of ArchiveObject.expectChild that takes multiple child names.
Sets/Creates an attribute's value.
Helper function to set an attribute without having to create an ArchiveValue.
Describes an attribute.
The attributes of this object.
The children of this object.
The name of this object.
The values of this object.
This class contains the data about an object in the archive.
Design: This class is modeled after sdlang-d, which feels mostly natural and comfortable to work with.
This class should be able to represent most kinds of objects, but will undoubtably be unsuitable for some.
Values: These are ArchiveValues that are directly attached to the object.
Attributes: These are named ArchiveValues that describe certain features of the object(e.g 'IsHidden=true', 'IsDirectory=false'). (You can of course, use your own meaning for these).
Children: These are ArchiveObjects that are children of the current object.
For example, there's the Archive.root object which is the root of all of the archive's data, and then children would be used to describe more complex objects from the root.
Issues: There is currently no tracking of parentship of objects, so it's possible to have circular references.