blob: 75424cc905d57682362e0549adb49bbcc3e6dfca [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2012, 2013 Red Hat, Inc.
* All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.eclipse.bpmn2.modeler.core.features;
import org.eclipse.graphiti.mm.pictograms.Connection;
/**
* The Interface IConnectionRouter.
*/
public interface IConnectionRouter {
// this is a way to pass additional info to the connection router in the form of a string;
// the info is attached to the Connection as a Property.
// see FeatureSupport.setPropertyValue()
/** The Constant ROUTING_INFO. */
public static final String ROUTING_INFO = "routing.info"; //$NON-NLS-1$
/** The Constant ROUTING_INFO_FORCE. */
public static final String ROUTING_INFO_FORCE = "force"; //$NON-NLS-1$
/** The Constant ROUTING_INFO_BENDPOINT. */
public static final String ROUTING_INFO_BENDPOINT = "bendpoint"; //$NON-NLS-1$
/**
* Perform connection routing.
*
* @param connection the Connection
* @return true, if successful
*/
public boolean route(Connection connection);
/**
* Check if the Connection allows routing.
*
* @param connection the Connection
* @return true if the Connection can be routed, false otherwise.
*/
public boolean canRoute(Connection connection);
/**
* Check if the Connection needs to be rerouted after the
* source or target shapes have been moved.
*
* @param connection the Connection
* @return true if the Connection routing needs to be recalculated.
*/
public boolean routingNeeded(Connection connection);
/**
* Dispose.
*/
public void dispose();
}