/*
* $Id: JGraphAdapterBackend.java,v 1.1.1.1 2005/08/06 05:26:45 gaudenz Exp $
*
* Copyright (c) 2001-2005, Gaudenz Alder
*
* See LICENSE file in distribution for licensing details of this source file
*/
package com.jgraph.example.adapter;
import java.util.Map;
/**
* TODO Support parent child relations and ports, but make it easy to ignore. We
* do not use an event-model for the backend since the calling of these methods
* is already based on an event information, and we use the commit / rollback to
* mimic transactional behaviour.
*/
public interface JGraphAdapterBackend {
/**
* Invoked after no exception has been thrown during a non-validating
* calling sequence on the backend.
*/
public void commit() throws Exception;
/**
* Invoked when an exception has been thrown during a non-validating
* calling sequence on the backend.
*/
public void rollback() throws Exception;
/**
* Invoked when a vertex has been added to the sender model. If
* validate is true then the change should not be performed yet.
* If the validation or the actual change fail on the backend,
* you should throw an exception.
*/
public void vertexAdded(JGraphAdapterModel sender, Object vertex,
boolean validate) throws Exception;
public void edgeAdded(JGraphAdapterModel sender, Object edge,
Object source, Object target, boolean validate) throws Exception;
public void cellRemoved(JGraphAdapterModel sender, Object cell,
boolean validate) throws Exception;
public void parentChanged(JGraphAdapterModel sender, Object child,
Object parent, boolean validate) throws Exception;
public void sourceChanged(JGraphAdapterModel sender, Object edge,
Object source, boolean validate) throws Exception;
public void targetChanged(JGraphAdapterModel sender, Object edge,
Object target, boolean validate) throws Exception;
public void attributesChanged(JGraphAdapterModel sender, Object cell,
Map attributes, boolean validate) throws Exception;
}