Package jade.content

Source Code of jade.content.OntoAID

/**
* ***************************************************************
* 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;

import jade.core.AID;
import jade.util.leap.Iterator;

/**
* Utility class that allow using an <code>AID</code> object
* as an ontological concept.
* @author Giovanni Caire - TILAB
*/
public class OntoAID extends AID implements Concept {

  /**
   * Constructs an ontological Agent-Identifier whose slot name is
   * set to an empty string
   * @see AID#AID()
   */
  public OntoAID() {
    super();
  }
 
  /**
   * Constructor for an ontological Agent-identifier
   * @param name is the value for the slot name for the agent.
   * @param isGUID indicates if the passed <code>name</code>
   * is already a globally unique identifier or not. Two
   * constants <code>ISGUID</code>, <code>ISLOCALNAME</code>
   * have also been defined for setting a value for this parameter.
   * If the name is a local name, then the HAP (Home Agent Platform)
   * is concatenated to the name, separated by  "@".
   * @see AID#AID(String, boolean)
   */
  public OntoAID(String name, boolean isGUID) {
    super(name, isGUID);
  }
 
  /**
   * Create an ontological Agent identifier that wraps an existing
   * <code>AID</code>.
   * @param id the <code>AID</code>to be wrapped. If <code>id</code>
   * is already an ontological agent identifier no new object is
   * created and <code>id</code> is returned with the resolvers
   * (if any) properly wrapped.
   */
  public static OntoAID wrap(AID id) {
    OntoAID wrapper = null;
    if (id != null) {
      if (id instanceof OntoAID) {
        wrapper = (OntoAID) id;
      }
      else {
        wrapper = new OntoAID(id.getName(), ISGUID);
        Iterator it = id.getAllAddresses();
        while (it.hasNext()) {
          wrapper.addAddresses((String) it.next());
        }
        it = id.getAllResolvers();
        while (it.hasNext()) {
          // This automatically performs the wrapping
          wrapper.addResolvers((AID) it.next());
        }
      }
    }
    return wrapper;
  }
 
  /**
   * This method is redefined so that resolvers AID are automatically
   * wrapped into OntoAIDs
   */
  public void addResolvers(AID aid) {
    super.addResolvers(wrap(aid));
  }
 
  // FIXME: clone method should be redefined too 
}

TOP

Related Classes of jade.content.OntoAID

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.