/*******************************************************************************
* Copyright (c) 2007, 2010 Association for Decentralized Information Management
* in Industry THTH ry.
* 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:
* VTT Technical Research Centre of Finland - initial API and implementation
*******************************************************************************/
package org.simantics.scenegraph.profile;
/**
* Diagram profile observer interface is a channel for {@link ProfileEntry} and
* {@link Style} to request style re-application, log exceptions and track the
* current state of the profile system for a particular diagram instance.
*
* TODO: add mechanism for partial style re-application
*/
public interface Observer {
/**
* Notifies this profile system instance that a profile subsystem is
* requesting for style re-application for the whole diagram.
*/
void update();
/**
* Notifies this profile system instance that a profile subsystem is
* requesting for style re-application for the given item.
*/
void update(Style style, Object item);
/**
* For logging exceptional situations that occur within profile entries or
* styles.
*
* @param throwable
*/
void exception(Throwable throwable);
/**
* @return true
if this profile system instance has been shut
* down, false
otherwise
*/
boolean isDisposed();
}