return new JavaRefactoringDescriptor(ID_USE_SUPERTYPE, project != null ? project.getElementName() : null, Messages.format(RefactoringCoreMessages.UseSuperTypeProcessor_descriptor_description, new String[] { JavaElementLabels.getElementLabel(fSuperType, JavaElementLabels.ALL_FULLY_QUALIFIED), JavaElementLabels.getElementLabel(fSubType, JavaElementLabels.ALL_FULLY_QUALIFIED) }), getComment(), arguments, JavaRefactorings.JAR_IMPORTABLE | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE);
JavaRefactoringDescriptor descriptor= new JavaRefactoringDescriptor(ID_USE_SUPERTYPE, project != null ? project.getElementName() : null, Messages.format(RefactoringCoreMessages.UseSuperTypeProcessor_descriptor_description, new String[] { JavaElementLabels.getElementLabel(fSuperType, JavaElementLabels.ALL_FULLY_QUALIFIED), JavaElementLabels.getElementLabel(fSubType, JavaElementLabels.ALL_FULLY_QUALIFIED) }), getComment(), arguments, JavaRefactorings.JAR_IMPORTABLE | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE); return new RefactoringChangeDescriptor(descriptor);
	public final Change createChange(final IProgressMonitor monitor) throws CoreException, OperationCanceledException {		Assert.isNotNull(monitor);		try {			fChanges= 0;			monitor.beginTask("", 1); //$NON-NLS-1$			monitor.setTaskName(RefactoringCoreMessages.ExtractInterfaceProcessor_creating);			final TextChange[] changes= fChangeManager.getAllChanges();			if (changes != null && changes.length != 0) {				fChanges= changes.length;				return new DynamicValidationStateChange(RefactoringCoreMessages.UseSupertypeWherePossibleRefactoring_name, fChangeManager.getAllChanges()) {					public final ChangeDescriptor getDescriptor() {						final Map arguments= new HashMap();						arguments.put(JavaRefactoringDescriptor.INPUT, fSubType.getHandleIdentifier());						arguments.put(JavaRefactoringDescriptor.ELEMENT + 1, fSuperType.getHandleIdentifier());						arguments.put(ATTRIBUTE_INSTANCEOF, Boolean.valueOf(fInstanceOf).toString());						IJavaProject project= null;						if (!fSubType.isBinary())							project= fSubType.getJavaProject();						return new JavaRefactoringDescriptor(ID_USE_SUPERTYPE, project != null ? project.getElementName() : null, Messages.format(RefactoringCoreMessages.UseSuperTypeProcessor_descriptor_description, new String[] { JavaElementLabels.getElementLabel(fSuperType, JavaElementLabels.ALL_FULLY_QUALIFIED), JavaElementLabels.getElementLabel(fSubType, JavaElementLabels.ALL_FULLY_QUALIFIED) }), getComment(), arguments, JavaRefactorings.JAR_IMPORTABLE | RefactoringDescriptor.STRUCTURAL_CHANGE | RefactoringDescriptor.MULTI_CHANGE);					}				};			}		} finally {			monitor.done();		}		return null;	}