/** * *************************************************************** * JADE - Java Agent DEvelopment Framework is a framework to develop * multi-agent systems in compliance with the FIPA specifications. * Copyright (C) 2000 CSELT S.p.A. * * 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. * ************************************************************** */ package jade.content.onto; import jade.content.abs.*; import jade.content.schema.*; import jade.util.leap.Serializable; /** This interface defines the methods to convert objects of ontological classes into/from abstract descriptors. Each ontology has an <code>Introspector</code> and delegates it the conversion. @author Federico Bergenti - Universita` di Parma */ public interface Introspector extends Serializable { /** Check the structure of a java class associated to an ontological element to ensure that translations to/from abstract descriptors and java objects (instances of that class) can be accomplished by this introspector. @param schema The schema of the ontological element @param javaClass The java class associated to the ontologcal element @param onto The Ontology that uses this Introspector @throws OntologyException if the java class does not have the correct structure */ void checkClass(ObjectSchema schema, Class javaClass, Ontology onto) throws OntologyException; Object getSlotValue(String slotName, Object obj, ObjectSchema schema) throws OntologyException; void setSlotValue(String slotName, Object slotValue, Object obj, ObjectSchema schema) throws OntologyException; AbsAggregate externalizeAggregate(String slotName, Object obj, ObjectSchema schema, Ontology referenceOnto) throws OntologyException; Object internalizeAggregate(String slotName, AbsAggregate abs, ObjectSchema schema, Ontology referenceOnto) throws OntologyException; AbsObject externalizeSpecialType(Object obj, ObjectSchema schema, Class javaClass, Ontology referenceOnto) throws OntologyException; Object internalizeSpecialType(AbsObject abs, ObjectSchema schema, Class javaClass, Ontology referenceOnto) throws OntologyException; }