// BEGIN LICENSE BLOCK // Version: CMPL 1.1 // // The contents of this file are subject to the Cisco-style Mozilla Public // License Version 1.1 (the "License"); you may not use this file except // in compliance with the License. You may obtain a copy of the License // at www.eclipse-clp.org/license. // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See // the License for the specific language governing rights and limitations // under the License. // // The Original Code is The ECLiPSe Constraint Logic Programming System. // The Initial Developer of the Original Code is Cisco Systems, Inc. // Portions created by the Initial Developer are // Copyright (C) 2000 - 2006 Cisco Systems, Inc. All Rights Reserved. // // Contributor(s): Stefano Novello / Josh Singer, Parc Technologies // // END LICENSE BLOCK //Title: Java/ECLiPSe interface //Version: $Id: CompoundTerm.java,v 1.1 2006/09/23 01:54:08 snovello Exp $ //Author: Stefano Novello / Josh Singer //Company: Parc Technologies //Description: Java interface to represent an ECLiPSe compound term package com.parctechnologies.eclipse; /** * Interface to describe an ECLiPSe compound term. * An object that implements it must be able to supply a functor, an arity, * and arguments. The arguments may be of any Java class which represents an * ECLiPSe data. * Compound terms converted from EXDR format using * {@link EXDRInputStream} implement this * interface. *
* A compound term like p(q(2),a,"b") has functor "p" and arity 3, arg(1) is the term q(2)
* arg(2) is the term 'a' and arg(3) is the Java String "b".
*/
public interface CompoundTerm
{
/**
* Return the functor of the compound term.
*/
public String functor();
/**
* Return the number of arguments.
*/
public int arity();
/**
* Return the argument at position i
. The returned object will
* instantiate the Java class/interface representing the corresponding ECLiPSe
* data type.
* @param i may vary between 1 and arity()
*/
public Object arg(int i);
}