using System;
using System.Collections.Generic;

namespace Graphs
{
	public class GraphComponent
	{
		    /// <summary>
        /// Contient tous les attributs du noeud.
        /// </summary>
		Label label;

        /// <summary>
        /// 
        /// </summary>
		public Label Label {
			get {return label;}
			set {label = value;}
		}
	

		/// <summary>
        /// Permet de dire si la composante est un noeud ou non.
        /// </summary>
		bool isNode;

		public bool IsNode {
			get {return isNode;}
			set {isNode = value;}
		}

		 /// <summary>
        /// Identifiant . id doit être unique pour chaque noeud d'un graphe et doit être obligatoirement renseigné.
        /// </summary>
		string id;

		public string Id {
			get {return id;}
            set { id = value;}
		}

		 /// <summary>
        /// Permet de faire le mapping entre Label et les attributs qui doivent être écrits ou lu à partir des fichiers GXL.
        /// </summary>
		List<AttributeGXL> attributesGXL;

		public List<AttributeGXL> AttributesGXL {
			get {return attributesGXL;}
			set {attributesGXL = value;}
		}


		public GraphComponent ()
		{
			AttributesGXL = new List<AttributeGXL>();
		}


		public GraphComponent (string id)
		{
			this.id=id;
			AttributesGXL = new List<AttributeGXL>();
		}
	}
}

