//****************************************************************************************************** // Element.cs - Gbtc // // Copyright © 2012, Grid Protection Alliance. All Rights Reserved. // // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See // the NOTICE file distributed with this work for additional information regarding copyright ownership. // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may // not use this file except in compliance with the License. You may obtain a copy of the License at: // // http://www.opensource.org/licenses/MIT // // Unless agreed to in writing, the subject software distributed under the License is distributed on an // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the // License for the specific language governing permissions and limitations. // // Code Modification History: // ---------------------------------------------------------------------------------------------------- // 04/30/2012 - Stephen C. Wills, Grid Protection Alliance // Generated original version of source code. // 12/17/2012 - Starlynn Danyelle Gilliam // Modified Header. // //****************************************************************************************************** using System; namespace GSF.PQDIF.Physical { #region [ Enumerations ] /// /// Enumeration that defines the types of /// elements found in the body of a record. /// public enum ElementType : byte { /// /// Collection element. /// Represents a collection of elements. /// Collection = 1, /// /// Scalar element. /// Represents a single value. /// Scalar = 2, /// /// Vector element. /// Represents a collection of values. /// Vector = 3 } #endregion /// /// Base class for elements. Elements are part of the physical structure /// of a PQDIF file. They exist within the body of a . /// public abstract class Element { #region [ Members ] // Fields private Guid m_tagOfElement; private PhysicalType m_typeOfValue; //private bool m_isError = false; #endregion #region [ Properties ] /// /// Gets or sets the tag which identifies the element. /// public virtual Guid TagOfElement { get { return m_tagOfElement; } set { m_tagOfElement = value; } } /// /// Gets the type of the element. The element can be a /// , a , /// or a . /// public abstract ElementType TypeOfElement { get; } /// /// Gets or sets the physical type of the value or values contained /// by the element. /// /// /// This determines the data type and size of the /// value or values. The value of this property is only relevant when /// is either /// or . /// public virtual PhysicalType TypeOfValue { get { return m_typeOfValue; } set { m_typeOfValue = value; } } #endregion } }