/*********************************************************************/ /* */ /* AgentService Framework */ /* www.agentservice.it */ /* */ /* Copyright (C) 2007 l.i.d.o. - DIST, University of Genoa, Italy */ /* GNU Lesser General Public License */ /* */ /* This library 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, */ /* version 2.1 of the License. */ /* */ /* This library 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 this library; if not, write to the */ /* Free Software Foundation, Inc., 59 Temple Place - Suite 330, */ /* Boston, MA 02111-1307, USA. */ /* */ /*********************************************************************/ using System; using System.Collections.Specialized; using AgentService.Agent; // this namespace contains the elements for the instantiation // of new knowledges. using AgentService.Agent.Knowledge; // this namespac contains the elements for the instantiation // of new behaviours. using AgentService.Agent.Behaviour; namespace AuctionDemo { /// /// It maintains the preference for each bidder. /// [Serializable] public class Preferences : AgentService.Agent.Knowledge.Knowledge { /// /// Default constructor /// public Preferences() : base() { } /// /// construct an instance of the knowledge. /// /// Knowledge name /// persistence mode /// elements of the preference public Preferences(string name, PersistenceMode pMode, StringCollection items) : base(name,pMode) { this.AddItem("Items",typeof(StringCollection), items); } #region Getter e Setter /// /// Getter for the Items property /// /// Instance of the behaviour that requests the access. /// the value of the property [KnowledgeItem("Items",typeof(StringCollection),true)] public StringCollection GetItems(Behaviour lockingBehaviour) { return this["Items", lockingBehaviour] as StringCollection; } /// /// Setter for the Items property. /// /// Instance of the behaviour that requests the access. /// the collection of items /// the new value [KnowledgeItem("Items", typeof(StringCollection), false)] public StringCollection SetItems(Behaviour lockingBehaviour, StringCollection value) { this["Items", lockingBehaviour] = value; return this["Items", lockingBehaviour] as StringCollection; } #endregion } }