/* $Id: CommonBehaviorFactory.java 17747 2010-01-10 21:16:51Z linus $ ******************************************************************************* * Copyright (c) 2009 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: * mvw ******************************************************************************* * * 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; /** * The interface for the factory of the CommonBehavior. */ public interface CommonBehaviorFactory extends Factory { /** * Create an empty but initialized instance of a UML ActionSequence. * * @return an initialized UML ActionSequence instance. */ Object createActionSequence(); /** * Create an empty but initialized instance of a UML Argument. * * @return an initialized UML Argument instance. */ Object createArgument(); /** * Create an empty but initialized instance of a UML AttributeLink. * * @return an initialized UML AttributeLink instance. */ Object createAttributeLink(); /** * Create an empty but initialized instance of a UML CallAction. * * @return an initialized UML CallAction instance. */ Object createCallAction(); /** * Create an empty but initialized instance of a UML ComponentInstance. * * @return an initialized UML ComponentInstance instance. */ Object createComponentInstance(); /** * Create an empty but initialized instance of a UML CreateAction. * * @return an initialized UML CreateAction instance. */ Object createCreateAction(); /** * Create an empty but initialized instance of a UML DataValue. * * @since Argo 0.21.1 - UML 1.3 type, but not introduced to Model interface * until after UML 1.4 work was done. * @return an initialized UML DataValue instance. */ Object createDataValue(); /** * Create an empty but initialized instance of a UML DestroyAction. * * @return an initialized UML DestroyAction instance. */ Object createDestroyAction(); /** * Create an empty but initialized instance of a UML Exception. * * @return an initialized UML Exception instance. */ Object createException(); /** * Create an empty but initialized instance of a UML Link. * * @return an initialized UML Link instance. */ Object createLink(); /** * Create an empty but initialized instance of a UML LinkEnd. * * @return an initialized UML LinkEnd instance. */ Object createLinkEnd(); /** * Create an empty but initialized instance of a UML LinkObject. * * @return an initialized UML LinkObject instance. */ Object createLinkObject(); /** * Create an empty but initialized instance of a UML NodeInstance. * * @return an initialized UML NodeInstance instance. */ Object createNodeInstance(); /** * Create an empty but initialized instance of a UML Object. * * @return an initialized UML Object instance. */ Object createObject(); /** * Create an empty but initialized instance of a UML Reception. * * @return an initialized UML Reception instance. */ Object createReception(); /** * Create an empty but initialized instance of a UML ReturnAction. * * @return an initialized UML ReturnAction instance. */ Object createReturnAction(); /** * Create an empty but initialized instance of a UML SendAction. * * @return an initialized UML SendAction instance. */ Object createSendAction(); /** * Create an empty but initialized instance of a UML Signal. * * @return an initialized UML Signal instance. */ Object createSignal(); /** * Create an empty but initialized instance of a UML Stimulus. * * @return an initialized UML Stimulus instance. */ Object createStimulus(); /** * Create an empty but initialized instance of a SubsystemInstance. * * @since UML 1.4 * @return an initialized SubsystemInstance instance. */ Object createSubsystemInstance(); /** * Create an empty but initialized instance of a UML TerminateAction. * * @return an initialized UML TerminateAction instance. */ Object createTerminateAction(); /** * Create an empty but initialized instance of a UML UninterpretedAction. * * @return an initialized UML UninterpretedAction instance. */ Object createUninterpretedAction(); /** * Builds a CallAction belonging to operation oper with a given name.<p> * * Ownership of this modelelement is not set! It is unwise to build a * callaction without an operation since the multiplicity according to the * UML 1.3 spec is 1..1. Therefore precondition is that there is an * operation. * * @param oper the given operation * @param name the name for the CallAction * @return MCallAction */ Object buildCallAction(Object oper, String name); /** * Builds a new uninterpreted action.<p> * * If the argument is an action state, the new action is set as the entry * action. * * @param actionState * the given action state or null * @return the newly build UninterpretedAction */ Object buildUninterpretedAction(Object actionState); /** * Builds a Link between two Instances. * * @param fromInstance the first given instance * @param toInstance the second given instance * @return the newly build link */ Object buildLink(Object fromInstance, Object toInstance); /** * Builds a CallAction for a given Message. * The action is named "action", and its namespace is set * to the Collaboration of the given Message. * * @param message the given message * @return the newly build callAction */ Object buildAction(Object message); /** * Builds a signal belonging to a BehavioralFeature, * SignalEvent, SendAction, or Reception. * * @param element target ModelElement of appropriate type * @return the newly build Signal */ Object buildSignal(Object element); /** * Builds a stimulus based on a given link.<p> * * The link must have two linkends that are connected to an instance. These * instances are used as sender and receiver of the stimulus. The source * will become the sender, the destination the receiver. * * @param link * the link * @return the stimulus */ Object buildStimulus(Object link); /** * Builds a reception belonging to some classifier. * * @param aClassifier the given classifier (or null) * @return the newly created reception */ Object buildReception(Object aClassifier); }