blob: 35f5f8dc277ce99a5c2148105c19d3d60f8b22bd [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2006 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.j2ee.refactor.operations;
/**
* Interface for classes that compute whether the automatically executed J2EE
* refactoring logic should be executed when a project is deleted or renamed.
*/
public interface IOptionalRefactorHandler {
/**
* Called to determine if automatic refactoring logic should be executed
* for a given deleted project. The project will already have been deleted.
* this method is called.
*
* @param metadata Metadata for the deleted project.
*
* @return True to refactor, false to skip refactoring for all dependent projects.
*/
public boolean shouldRefactorDeletedProject(ProjectRefactorMetadata metadata);
/**
* Called to determine if automatic refactoring logic should be executed
* for a given renamed project. The project will already have been be renamed when
* this method is called.
*
* @param metadata Metadata for the renamed project (pre-rename).
*
* @return True to refactor, false to skip refactoring for all dependent projects.
*/
public boolean shouldRefactorRenamedProject(ProjectRefactorMetadata metadata);
/**
* Called to determine if automatic refactoring logic should be executed
* on the specified dependent project when a referenced project has been deleted.
* The referenced project will already have been deleted when this method is called.
*
* @param deletedMetadata Metadata for the deleted project.
* @param dependentMetadata Metadata for the dependent project.
*
* @return True to refactor the dependent project.
*/
public boolean shouldRefactorDependentProjectOnDelete(ProjectRefactorMetadata deletedMetadata, ProjectRefactorMetadata dependentMetadata);
/**
* Called to determine if automatic refactoring logic should be executed
* on the specified dependent project when a referenced project has been renamed.
* The referenced project will already have been renamed when this method is called.
*
* @param renamedMetadata Metadata for the renamed project.
* @param dependentMetadata Metadata for the dependent project.
*
* @return True to refactor the dependent project.
*/
public boolean shouldRefactorDependentProjectOnRename(ProjectRefactorMetadata renamedMetadata, ProjectRefactorMetadata dependentMetadata);
}