/* MOD_V2.0
* Copyright (c) 2012 OpenDA Association
* All rights reserved.
*
* This file is part of OpenDA.
*
* OpenDA is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* OpenDA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenDA. If not, see .
*/
using System;
using System.Collections.Generic;
namespace OpenDA.DotNet.Interfaces
{
///
/// TreeVector
///
public interface ITreeVector : IVector
{
///
/// Get a TreeVector's identifier.
/// The TreeVector's identifier.
///
String Id { get; }
///
/// Get a TreeVector's caption.
/// The TreeVector's caption (i.e. descriptive name)
///
String Caption { get; }
///
/// Get a TreeVector's description.
/// The TreeVector's extensive description.
///
String Description { get; }
///
/// Get the identifiers of the children
/// the sub-treevector ids
///
IList SubTreeVectorIds { get; }
///
/// Get a child in the tree vector, the child is known to be a SubTreeVector
/// (otherwise a run time exception will be thrown).
/// identifier of the child, may contain "/"'s to specify full path in tree.
/// Child SubTreeVector with identifier id
.
///
ITreeVector GetSubTreeVector(String id);
///
/// Get the number of dimensions in the TreeVector.
/// Returns null
if there are no dimensions defined, returns the array with dimensions
/// otherwise. The length of the returned array is equal to the number of dimensions
///
IDimensionIndex[] DimensionIndices { get; }
///
/// Should this part of the tree vector be excluded from the vector of is parent?
/// Returns true
if this part should be excluded.
///
bool ExcludeFromVector();
///
/// Clone (i.e. duplicate) a TreeVector.
///
/// Note: Duplication means that a new vector is created that is identical to
/// the current vector. All data in the current vector is also copied.
///
/// A deep copy of the present vector.
///
new ITreeVector Clone();
}
}