/*********************************************************************/ /* */ /* 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 AgentService.Ontology; using AgentService.Ontology.Interfaces; using AgentService.Ontology.Validation; namespace AgentService.Ontology.Schema.Abstract { /// /// It's an abstract descriptor for a concept expression. /// public class AbsConcept: AbsPrimitiveSlotsHolder, AbsTerm, Concept { /// /// Constructs an abstract descriptor with a given name. /// /// The name of the abstract descriptor. public AbsConcept(string typeName): base(typeName) { } /// /// Sets an attribute of the concept held by this abstract descriptor. /// /// The name of the attribute. /// The value of the attribute. public void SetAttribute(string name, AbsTerm val) { try { base.SetAttribute(name, val); } catch(Exception e) { throw new ValidationException(e.ToString()); } } /// /// Retrieves the value of a given attribute. /// /// The name of the attribute. /// Returns an AbsTerm. public AbsTerm GetAbsTerm(string name) { try { return (AbsTerm)GetAbsObject(name); } catch(Exception e) { throw new ValidationException(e.ToString()); } } private static Type absConceptClass = null; /// /// Gets the type of this absolute descriptor. /// /// public static Type GetClass() { try { if (absConceptClass == null) { absConceptClass = typeof(AgentService.Ontology.Schema.Abstract.AbsConcept); } return absConceptClass; } catch(Exception e) { throw new ValidationException(e.ToString()); } } } }