/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.runtime.preview;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.teiid.designer.runtime.spi.ITeiidServer;
import org.teiid.designer.vdb.Vdb;
/**
* The <code>PreviewContext</code> stores information required to perform data preview.
*
* @since 8.0
*/
public interface PreviewContext {
/**
* @param previewVdb the Preview VDB whose connection information is begin validated
* @param previewServer the preview server (may not be <code>null</code>)
* @return a status indicating if the connection information is valid
*/
IStatus ensureConnectionInfoIsValid( Vdb previewVdb,
ITeiidServer previewServer ) throws Exception;
/**
* @param projectOrModel the project or model whose Preview VDB is being requested (may not be <code>null</code>)
* @return the Preview VDB (never <code>null</code>)
*/
IFile getPreviewVdb( IResource projectOrModel );
/**
* @param pvdbPath the path of the Preview VDB whose deploy name is being requested (may not be <code>null</code>)
* @return the name (never <code>null</code>)
*/
String getPreviewVdbDeployedName( IPath pvdbPath );
/**
* @param pvdbPath the path of the Preview VDB whose JNDI name is being requested (may not be <code>null</code>)
* @return the JNDI name (never <code>null</code>)
*/
String getPreviewVdbJndiName( IPath pvdbPath );
}