001        package com.croftsoft.core.role.actor;
002    
003        /***********************************************************************
004        * A semantic interface for bootstrapping the exchange of semantic
005        * interfaces between objects.
006        *
007        * <p>
008        * The semantic definition for this interface is available at:<br/>
009        * <a href="http://CroftSoft.com/library/tutorials/roles/">
010        * http://CroftSoft.com/library/tutorials/roles/</a>
011        * </p>
012        * 
013        * <p>
014        * The copyright has been released by the author to the Public Domain.
015        * </p>
016        * 
017        * @version
018        *   $Id: Actor.java,v 1.3 2007/05/10 02:53:21 croft Exp $
019        * @since
020        *   1998-04-26
021        * @author
022        *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
023        ***********************************************************************/
024    
025        public interface  Actor
026        ////////////////////////////////////////////////////////////////////////
027        ////////////////////////////////////////////////////////////////////////
028        {
029    
030        /***********************************************************************
031        * Returns an array of String representing the names of semantic
032        * interfaces, or "roles", supported by this object.
033        *
034        * <p>
035        * The array may represent just a limited subset from all of the
036        * interfaces that are actually implemented by this object.  Which
037        * interfaces are returned are chosen as deemed appropriate by this
038        * object for the current context and may change with each call to
039        * this method.
040        * </p>
041        * 
042        * <p>
043        * The ordering of the roles in the array may be determined dynamically
044        * by the object and should be assumed to be listed in the order of 
045        * preference, from the viewpoint of this object, for polymorphic
046        * casting of this object by another.  The ordering may change with
047        * each call to this method.
048        * </p>
049        * 
050        * <p>
051        * May return null.
052        * </p>
053        ***********************************************************************/
054        public String [ ]  getRoles ( );
055         
056        ////////////////////////////////////////////////////////////////////////
057        ////////////////////////////////////////////////////////////////////////
058        }