blob: 31a2dbba4b4497303ce94db314e7a728ec46d92e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 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.ltk.core.refactoring;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.ltk.core.refactoring.history.IRefactoringHistoryService;
import org.eclipse.ltk.internal.core.refactoring.RefactoringCorePlugin;
import org.eclipse.ltk.internal.core.refactoring.history.RefactoringContributionManager;
import org.eclipse.ltk.internal.core.refactoring.history.RefactoringHistoryService;
/**
* Central access point to access resources managed by the refactoring
* core plug-in.
* <p>
* Note: this class is not intended to be extended by clients.
* </p>
*
* @since 3.0
*/
public class RefactoringCore {
/**
* The id of the Refactoring plug-in (value <code>"org.eclipse.ltk.core.refactoring"</code>).
*
* @since 3.2
*/
public static final String ID_PLUGIN= "org.eclipse.ltk.core.refactoring"; //$NON-NLS-1$
private static IValidationCheckResultQueryFactory fQueryFactory= new DefaultQueryFactory();
private static class NullQuery implements IValidationCheckResultQuery {
public boolean proceed(RefactoringStatus status) {
return true;
}
public void stopped(RefactoringStatus status) {
// do nothing
}
}
private static class DefaultQueryFactory implements IValidationCheckResultQueryFactory {
public IValidationCheckResultQuery create(IAdaptable context) {
return new NullQuery();
}
}
private RefactoringCore() {
// no instance
}
/**
* Returns the singleton undo manager for the refactoring undo stack.
*
* @return the refactoring undo manager.
*/
public static IUndoManager getUndoManager() {
return RefactoringCorePlugin.getUndoManager();
}
/**
* Returns the singleton refactoring history service.
*
* @return the refactoring history service
*
* @since 3.2
*/
public static IRefactoringHistoryService getHistoryService() {
return RefactoringHistoryService.getInstance();
}
/**
* Returns the refactoring contribution with the specified unique id.
*
* @param id
* the unique id of the contribution
* @return the refactoring contribution, or <code>null</code> if in
* contribution is registered with for this id
*
* @since 3.2
*/
public static RefactoringContribution getRefactoringContribution(String id) {
return RefactoringContributionManager.getInstance().getRefactoringContribution(id);
}
/**
* When condition checking is performed for a refactoring then the
* condition check is interpreted as failed if the refactoring status
* severity return from the condition checking operation is equal
* or greater than the value returned by this method.
*
* @return the condition checking failed severity
*/
public static int getConditionCheckingFailedSeverity() {
return RefactoringStatus.WARNING;
}
/**
* Returns the query factory.
*
* @return the query factory
*
* @since 3.1
*/
public static IValidationCheckResultQueryFactory getQueryFactory() {
return fQueryFactory;
}
/**
* An internal method to set the query factory.
* <p>
* This method is NOT official API. It is a special method for the refactoring UI
* plug-in to set a dialog based query factory.
* </p>
* @param factory the factory to set or <code>null</code>
*
* @since 3.1
*/
public static void internalSetQueryFactory(IValidationCheckResultQueryFactory factory) {
if (factory == null) {
fQueryFactory= new DefaultQueryFactory();
} else {
fQueryFactory= factory;
}
}
}