1 /*******************************************************************************
2 * Copyright (c) 2006, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.jdt.internal.corext.refactoring.changes;
13 import org.eclipse.core.runtime.Assert;
14 import org.eclipse.core.runtime.IProgressMonitor;
16 import org.eclipse.core.resources.IResource;
18 import org.eclipse.ltk.core.refactoring.Change;
19 import org.eclipse.ltk.core.refactoring.ChangeDescriptor;
20 import org.eclipse.ltk.core.refactoring.RefactoringChangeDescriptor;
21 import org.eclipse.ltk.core.refactoring.RefactoringDescriptor;
22 import org.eclipse.ltk.core.refactoring.resource.RenameResourceChange;
24 import org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor;
26 import org.eclipse.jdt.internal.corext.refactoring.RefactoringCoreMessages;
27 import org.eclipse.jdt.internal.corext.refactoring.rename.RenamePackageProcessor;
28 import org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor;
29 import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
32 * Dynamic validation state change with support for refactoring descriptors.
36 public final class DynamicValidationRefactoringChange extends DynamicValidationStateChange {
38 /** The refactoring descriptor */
39 private final RefactoringDescriptor fDescriptor;
42 * Creates a new dynamic validation refactoring change.
45 * the refactoring descriptor
47 * the name of the change
49 public DynamicValidationRefactoringChange(final JavaRefactoringDescriptor descriptor, final String name) {
51 Assert.isNotNull(descriptor);
52 fDescriptor= descriptor;
56 * Creates a new dynamic validation refactoring change.
59 * the refactoring descriptor
61 * the name of the change
65 public DynamicValidationRefactoringChange(final JavaRefactoringDescriptor descriptor, final String name, final Change[] changes) {
67 Assert.isNotNull(descriptor);
68 Assert.isTrue(!descriptor.validateDescriptor().hasFatalError(), RefactoringCoreMessages.DynamicValidationRefactoringChange_fatal_error);
69 fDescriptor= descriptor;
76 public ChangeDescriptor getDescriptor() {
77 return new RefactoringChangeDescriptor(fDescriptor);
80 public Change generated_2975924946246089949(IProgressMonitor monitor, RenameTypeProcessor renametypeprocessor) {
81 addAll(renametypeprocessor.fChangeManager.getAllChanges());
82 if (renametypeprocessor.willRenameCU()) {
83 IResource resource= renametypeprocessor.fType.getCompilationUnit().getResource();
84 if (resource != null && resource.isLinked()) {
85 String ext= resource.getFileExtension();
86 String renamedResourceName;
88 renamedResourceName= renametypeprocessor.getNewElementName();
90 renamedResourceName= renametypeprocessor.getNewElementName() + '.' + ext;
91 add(new RenameResourceChange(renametypeprocessor.fType.getCompilationUnit().getPath(), renamedResourceName));
93 String renamedCUName= JavaModelUtil.getRenamedCUName(renametypeprocessor.fType.getCompilationUnit(), renametypeprocessor.getNewElementName());
94 add(new RenameCompilationUnitChange(renametypeprocessor.fType.getCompilationUnit(), renamedCUName));
101 public Change generated_795509846149273965(IProgressMonitor monitor, RenamePackageProcessor renamepackageprocessor) {
102 addAll(renamepackageprocessor.fChangeManager.getAllChanges());
103 renamepackageprocessor.fRenamePackageChange= new RenamePackageChange( renamepackageprocessor.fPackage, renamepackageprocessor.getNewElementName(), renamepackageprocessor.fRenameSubpackages);
104 add(renamepackageprocessor.fRenamePackageChange);