using System;
using System.Collections.Generic;
using System.Text;
namespace Substrate.Nbt
{
///
/// A node in an NBT schema definition, used to define what values are considered valid for a given NBT node.
///
public abstract class SchemaNode
{
private string _name;
private SchemaOptions _options;
///
/// Gets the name of an expected NBT node.
///
public string Name
{
get { return _name; }
}
///
/// Gets additional schema options defined for this node.
///
public SchemaOptions Options
{
get { return _options; }
}
///
/// Constructs a new representing a named .
///
/// The name of the corresponding .
protected SchemaNode (string name)
{
_name = name;
}
///
/// Constructs a new with additional options.
///
/// The name of the corresponding .
/// One or more option flags modifying the processing of this node.
protected SchemaNode (string name, SchemaOptions options)
{
_name = name;
_options = options;
}
///
/// Construct a sensible default NBT tree representative of this schema node.
///
/// A that is valid for this schema node.
public virtual TagNode BuildDefaultTree ()
{
return null;
}
}
}