/*
* 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.ui.actions;
import org.eclipse.emf.ecore.EObject;
import org.teiid.designer.metamodels.diagram.Diagram;
/**
* @author BLaFond
*
* This interface provides diagram plugin implementations to play in the global editor
* action service. Since some diagrams may be canned, some custom, this class is required to
* make this work.
*
* @since 8.0
*/
public interface IDiagramHelper {
/**
* Can rename diagram method
* @param diagram
* @return canRename
*/
boolean canRename(Diagram diagram);
/**
* Rename diagram method
* @param diagram
*/
void rename(Diagram diagram);
/**
* Can copy diagram method
* @param diagram
* @return canCopy
*/
boolean canCopy(Diagram diagram);
/**
* Copy diagram method
* @param diagram
*/
void copy(Diagram diagram);
/**
* Can cut diagram method
* @param diagram
* @return canCut
*/
boolean canCut(Diagram diagram);
/**
* Cut diagram method
* @param diagram
*/
void cut(Diagram diagram);
/**
* Can delete diagram method
* @param diagram
* @return canDelete
*/
boolean canDelete(Diagram diagram);
/**
* Delete diagram method
* @param diagram
*/
void delete(Diagram diagram);
/**
* Can clone diagram method
* @param diagram
* @return canClone
*/
boolean canClone(Diagram diagram);
/**
* Clone diagram method
* @param diagram
*/
void clone(Diagram diagram);
/**
* Can create diagram method
* @param diagram
*/
boolean canCreate(Diagram diagram);
/**
* Can paste diagram method
* @param diagram
*/
boolean canPaste(Diagram diagram, EObject pasteParent);
/**
* Paste diagram method
* @param diagram
* @param pasteParent
*/
void paste(Diagram diagram, EObject pasteParent);
}