/* $Id: CommonBehaviorHelper.java 18739 2010-09-14 13:25:13Z mvw $
*******************************************************************************
* Copyright (c) 2009-2010 Contributors - see below
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* tfmorris
* Michiel van der Wulp
*******************************************************************************
*
* Some portions of this file was previously release using the BSD License:
*/
// Copyright (c) 2005-2006 The Regents of the University of California. All
// Rights Reserved. Permission to use, copy, modify, and distribute this
// software and its documentation without fee, and without a written
// agreement is hereby granted, provided that the above copyright notice
// and this paragraph appear in all copies. This software program and
// documentation are copyrighted by The Regents of the University of
// California. The software program and documentation are supplied "AS
// IS", without any accompanying services from The Regents. The Regents
// does not warrant that the operation of the program will be
// uninterrupted or error-free. The end-user understands that the program
// was developed for research purposes and is advised not to rely
// exclusively on the program for any reason. IN NO EVENT SHALL THE
// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
package org.argouml.model;
import java.util.Collection;
import java.util.List;
/**
* The interface to the helper of the CommonBehavior.<p>
*
* Created from the old CommonBehaviorHelper.
*/
public interface CommonBehaviorHelper {
/**
* Returns the instance which the create action creates.
*
* @param createaction the create action
* @return the instantiation of the create action
*/
Object getInstantiation(Object createaction);
/**
* Set the instantiation for a create action.
* @param createaction the action
* @param instantiation the classifier
*/
void setInstantiation(Object createaction, Object instantiation);
/**
* Returns the source of a link. The source of a binary link is defined as
* the instance where the first linkend is pointing to via the association
* instance.
*
* @param link the given link
* @return MInstance the source of the given link
*/
Object getSource(Object link);
/**
* Returns the destination of a link. The destination of a binary link is
* defined as the instance where the second linkend is pointing to via the
* association instance.
* @param link the given link
* @return MInstance the destination of the given link
*/
Object getDestination(Object link);
/**
* Removes the actual Argument from an Action.
*
* @param handle Action
* @param argument Argument
*/
void removeActualArgument(Object handle, Object argument);
/**
* This method replaces all arguments of the given action
* by the given list of arguments.
*
* @param action the given action
* @param arguments the new arguments
*/
void setActualArguments(Object action, List arguments);
/**
* This method classifier from an instance.
*
* @param handle is the instance
* @param classifier is the classifier
*/
void removeClassifier(Object handle, Object classifier);
/**
* Remove the given context (BehavioralFeature) from a Signal.
*
* @param handle Signal
* @param context BehavioralFeature
*/
void removeContext(Object handle, Object context);
/**
* Remove a given Reception from a given Signal.
*
* @param handle the Signal
* @param reception the Reception
*/
void removeReception(Object handle, Object reception);
/**
* Adds an actual argument to an action.
*
* @param handle the action
* @param argument the argument
*/
void addActualArgument(Object handle, Object argument);
/**
* Adds an actual argument to an action.
*
* @param handle the action
* @param position the 0-based position at which
* to insert the actualArgument
* @param argument the argument
*/
void addActualArgument(Object handle, int position, Object argument);
/**
* Adds a Classifier to an Instance.
*
* @param handle Instance
* @param classifier Classifier
*/
void addClassifier(Object handle, Object classifier);
/**
* Adds a stimulus to a action or link.
*
* @param handle the action or link
* @param stimulus is the stimulus
*/
void addStimulus(Object handle, Object stimulus);
/**
* Sets the asynchronous property of an action.
*
* @param handle the action
* @param value the value to alter the asynchronous property to
*/
void setAsynchronous(Object handle, boolean value);
/**
* Set the Operation of a CallAction or CallEvent.
*
* @param handle CallAction or CallEvent
* @param operation Operation
*/
void setOperation(Object handle, Object operation);
/**
* Sets the classifiers of the given instance.
*
* @param handle
* is the instance
* @param classifiers
* collection of classifiers
*/
void setClassifiers(Object handle, Collection classifiers);
/**
* Sets the communicationLink between a link c and a stimulus handle.
*
* @param handle the stimulus
* @param c the link
*/
void setCommunicationLink(Object handle, Object c);
/**
* @param handle Instance
* @param c ComponentInstance or null
*/
void setComponentInstance(Object handle, Object c);
/**
* Sets the contexts for a Signal.
*
* @param handle the Signal
* @param c the collection of contexts
*/
void setContexts(Object handle, Collection c);
/**
* Sets the dispatch action for some stimulus.
*
* @param handle the stimulus
* @param value the action. Can be <code>null</code>.
*/
void setDispatchAction(Object handle, Object value);
/**
* Sets the given Instance to the given LinkEnd or AttributeLink.
*
* @param handle LinkEnd or AttributeLink
* @param inst null or Instance
*/
void setInstance(Object handle, Object inst);
/**
* Set the NodeInstance of a ComponentInstance.
*
* @param handle ComponentInstance
* @param nodeInstance NodeInstance
*/
void setNodeInstance(Object handle, Object nodeInstance);
/**
* Sets the receiver of some model element.
*
* @param handle model element
* @param receiver the receiver
*/
void setReceiver(Object handle, Object receiver);
/**
* Sets the collection of receptions for a Sinal.
*
* @param handle the signal
* @param receptions a collection with receptions
*/
void setReception(Object handle, Collection receptions);
/**
* Set the recurrence of an Action.
*
* @param handle Action
* @param expr IterationExpression
*/
void setRecurrence(Object handle, Object expr);
/**
* Set the Expression (script) for an Action.
*
* @param handle Action
* @param expr the script (ActionExpression) or null
*/
void setScript(Object handle, Object expr);
/**
* Sets the sender of some model element.<p>
*
* @param handle model element
* @param sender the sender
*/
void setSender(Object handle, Object sender);
/**
* Set the Signal.
*
* @param handle SendAction or Reception or SignalEvent
* @param signal Signal or null
*/
void setSignal(Object handle, Object signal);
/**
* @param handle a reception
* @param specification the specification
*/
void setSpecification(Object handle, String specification);
/**
* Sets the target of some action or transition.
*
* @param handle the model element
* @param element the target of the model element or null
*/
void setTarget(Object handle, Object element);
/**
* Set the Transition of a guard or effect (Action).
*
* @param handle the Guard or Action
* @param trans the Transition
*/
void setTransition(Object handle, Object trans);
/**
* Set the value of an Argument or AttributeLink.
* <p>
* <em>NOTE:</em> This method used allow setting the dataValue of a
* TaggedValue. This usage is deprecated.
*
* @param handle the Object of which the value will be set
* @param value the value to set. If handle is an Argument, the value must
* be an Expression. If it's an AttributeLink, the value must
* be an Instance.
*/
void setValue(Object handle, Object value);
/**
* Return the owner of an action.
*
* @param handle the action
* @return owning element of this action
*/
Object getActionOwner(Object handle);
/**
* Add an action to action sequence.
*
* @param handle the action sequence
* @param action the action
*/
void addAction(Object handle, Object action);
/**
* Inserts an action at the specified position in an action sequence.
*
* @param handle the action sequence
* @param position the 0-based position at which to insert the action
* @param action the action
*/
void addAction(Object handle, int position, Object action);
/**
* Remove an Action from an ActionSequence.
*
* @param handle ActionSequence
* @param action Action
*/
void removeAction(Object handle, Object action);
}