* @param terminal Cell state that represents the terminal.
	 * @param source Boolean indicating if the terminal is the source or target.
	 */
	public mxConnectionConstraint getConnectionConstraint(mxCellState edge,
			mxCellState terminal, boolean source)
	{
		mxPoint point = null;
		Object x = edge.getStyle()
				.get((source) ? mxConstants.STYLE_EXIT_X
						: mxConstants.STYLE_ENTRY_X);

		if (x != null)
		{
			Object y = edge.getStyle().get(
					(source) ? mxConstants.STYLE_EXIT_Y
							: mxConstants.STYLE_ENTRY_Y);

			if (y != null)
			{
				point = new mxPoint(Double.parseDouble(x.toString()),
						Double.parseDouble(y.toString()));
			}
		}

		boolean perimeter = false;

		if (point != null)
		{
			perimeter = mxUtils.isTrue(edge.style,
					(source) ? mxConstants.STYLE_EXIT_PERIMETER
							: mxConstants.STYLE_ENTRY_PERIMETER, true);
		}

		return new mxConnectionConstraint(point, perimeter);
	}