/*********************************************************************/
/* */
/* 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 predicate expressions.
///
public class AbsPredicate: AbsPrimitiveSlotsHolder, AbsContentElement, Predicate
{
///
/// Constructs a predicate with a given name.
///
/// The name of the predicate.
public AbsPredicate(string typeName):base(typeName)
{
}
///
/// Sets the value of a given attribute.
///
/// The name of the attribute to set.
/// The new value of the attribute.
public new void SetAttribute(string name, AbsObject val)
{
try
{
base.SetAttribute(name, val);
}
catch(Exception e)
{
throw new ValidationException(e.ToString());
}
}
///
/// Gets a casted value (AbsTerm) of a given attribute.
///
/// The name of the attribute.
///
public AbsTerm GetAbsTerm(string name)
{
try
{
return (AbsTerm) GetAbsObject(name);
}
catch(Exception e)
{
throw new ValidationException(e.ToString());
}
}
private static Type absPredicateClass = null;
///
/// Gets the type of this absolute descriptor.
///
///
public static Type GetClass()
{
try
{
if (absPredicateClass == null)
{
try
{
absPredicateClass = typeof(AgentService.Ontology.Schema.Abstract.AbsPredicate);
}
catch(OntologyException e)
{
throw e;
}
}
return absPredicateClass;
}
catch(Exception e)
{
throw new ValidationException(e.ToString());
}
}
}
}