blob: 1c91d73c42d496155eecac88569fb7cf838d1eb3 [file] [log] [blame]
/*******************************************************************************
* Copyright 2005, CHISEL Group, University of Victoria, Victoria, BC, Canada.
* 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: The Chisel Group, University of Victoria
*******************************************************************************/
package org.eclipse.zest.core.viewers;
import org.eclipse.jface.viewers.IStructuredContentProvider;
/**
* A graph content provider.
*
* @author Ian Bull
*/
public interface IGraphContentProvider extends IStructuredContentProvider {
/**
* Gets the source Object for the given relationship. Note, at least one of the source
* or destination must not be null. If both are null, then nothing can be displayed in
* the graph (a relationship cannot exist without nodes to be connected to). However,
* if one of getSource() or getDestination() returns null, then the resulting graph will
* contain an unconnected node for the non-null object returned from the other method.
* @param rel the relationship.
* @return the source, or null for an unconnected destination.
*/
public Object getSource(Object rel);
/**
* Gets the target Object for the given relationship. Note, at least one of the source
* or destination must not be null. If both are null, then nothing can be displayed in
* the graph (a relationship cannot exist without nodes to be connected to). However,
* if one of getSource() or getDestination() returns null, then the resulting graph will
* contain an unconnected node for the non-null object returned from the other method.
* @param rel the relationship.
* @return the destination, or null for an unconnected source.
*/
public Object getDestination(Object rel);
/**
* Returns all the relationships in the graph for the given input.
* @input the input model object.
* @return all the relationships in the graph for the given input.
*/
public Object[] getElements(Object input);
}