/*******************************************************************************
* Copyright (c) 2009 the CHISEL group and contributors.
* 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:
* Del Myers -- initial API and implementation
*******************************************************************************/
package org.eclipse.zest.custom.uml.viewers;
import org.eclipse.jface.viewers.IStructuredContentProvider;
/**
* A content provider for generating UML Sequence diagrams. Sequence
* Diagrams are represented as a list of <i>activations</i>. An activation
* is an event that occurs in time and causes a spawning of execution. Each
* activation has a class that it is activated on, a time that it occurs,
* and a length of execution. The times and lengths given by this content
* provider are not absolute. They are relative, and only used to position
* elements relatively to one another. Times and durations of sub-activations
* are relative to the parent activation.
*
* Classes, activations, and return values will be sent onto the label provider to get
* label information about them.
* @author Del Myers
* @deprecated
*/
public interface ISequenceContentProvider extends IStructuredContentProvider {
/**
* Returns the root-level activations for the sequence diagram.
* An entire sequence diagram can be generated from one single
* activation, so it is expected that this method returns a single-element
* array.
*/
public Object[] getElements(Object inputElement);
/**
* Returns the child activations that occur on the given activation.
* This may spawn, again, new activations, and create new classes for the
* diagram.
* @param activation the activation for which children will be created.
* @return the child activations.
*/
public Object[] getChildren(Object activation);
/**
* Returns true iff the given activation has child activations. Will be
* used to determine if the activation can be expanded/contracted.
* @param activation
* @return
*/
public boolean hasChildren(Object activation);
/**
* Returns the target object for the given activation. If one is not
* known in the model, then new activations will create a target class.
* @param activation
* @return an object representing the class that the activation occurrs on.
*/
public Object getTargetObject(Object activation);
/**
* Gets information that is returned by the end of the process that the
* activation spawns.
* @param activation the activation.
* @return the information that is returned by the end of the process
* that the activation spawns.
*/
public Object getReturnValue(Object activation);
}