/*******************************************************************************
* 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.ui.workbench;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.ui.IEditorInput;
import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.ResourceArray;
import org.simantics.db.exception.DatabaseException;
/**
* @author Tuukka Lehtonen
*
* @see IResourceEditorInput2
* @see ResourceEditorInput
* @see ResourceEditorInput2
*/
public interface IResourceEditorInput extends IEditorInput {
/**
* @param adapter not needed anymore since 1.6, may be null
*/
void init(IAdaptable adapter) throws DatabaseException;
/**
* Release any strong references to resources held by this editor input.
* Does nothing when called multiple times.
*/
void dispose();
/**
* @return the same as getResourceArray().get(0) or null
if
* resource does not exist, i.e. getResourceArray returns an empty
* resource array
*/
Resource getResource();
/**
* @return null
if resource does not exist
*/
ResourceArray getResourceArray();
/**
* For checking the existence of the resource input from the given graph.
*
* @param g
* @return
*/
boolean exists(ReadGraph g) throws DatabaseException;
/**
* Needs to be called on every update by the related editor part to keep the
* cached data coherent with the graph model.
*
* @param g
*/
void update(ReadGraph g) throws DatabaseException;
}