﻿// --------------------------------------------------------------------------------
// <copyright>
// Copyright (C)Nintendo. All rights reserved.
//
// These coded instructions, statements, and computer programs contain proprietary
// information of Nintendo and/or its licensed developers and are protected by
// national and international copyright laws. They may not be disclosed to third
// parties or copied or duplicated in any form, in whole or in part, without the
// prior written consent of Nintendo.
//
// The content herein is highly confidential and should be handled accordingly.
// </copyright>
// --------------------------------------------------------------------------------

{TemplateTag:EntryList.UsingNamespace}
{TemplateTag:EditorDataModel.NamespaceAliases}
namespace {TemplateTag:EditorDataModel.CurrVersionNamespace}
{
    /// <summary>
    /// [AUTO GENERATED SOURCE CODE, DO NOT MODIFY]
    /// {TemplateTag:EditorDataModel.Description}
    /// </summary>
    [Serializable]{TemplateTag:EditorDataModel.Attributes}
    public class {TemplateTag:EditorDataModel.Name} : {TemplateTag:EntryList.SuperClass}
    {
{TemplateTag:EntryList.InitMember}        /// <summary>
        /// コンストラクタです.
        /// </summary>
        public {TemplateTag:EditorDataModel.Name}() :
            base()
        {
{TemplateTag:EntryList.ConstructMember}
            this.PostConstruct();
        }

{TemplateTag:EntryList.Property}        /// <summary>
        /// 入力データモデルからの値を設定します.
        /// </summary>
        /// <param name="src">入力データモデルです.</param>
        /// <returns>設定に成功したらtrueを返却します.</returns>
        public override bool Set(object src)
        {
            var srcDataModel = src as CurrVersion.{TemplateTag:EditorDataModel.Name};
            if (srcDataModel == null)
            {
                return false;
            }

            if (base.Set(src) == false)
            {
                return false;
            }

{TemplateTag:EntryList.CopyMember}
            return true;
        }

        /// <summary>
        /// Write the data model to XML document.
        /// </summary>
        /// <param name="context">Holds the data needed for serialization.</param>
        /// <returns>True on success.</returns>
        public override bool WriteXml(XmlDocSerializationContext context)
        {
            // Serialize the base class.
            bool success = base.WriteXml(context);

{TemplateTag:EntryList.WriteMemberXml}
            return success;
        }

        /// <summary>
        /// Read the data model from XML document.
        /// </summary>
        /// <param name="context">Holds the data needed for deserialization.</param>
        /// <returns>True on success.</returns>
        public override bool ReadXml(XmlDocSerializationContext context)
        {
            // Deserialize the base class.
            bool success = base.ReadXml(context);

{TemplateTag:EntryList.ReadMemberXml}
            return success;
        }
    }
}
