]> git.uio.no Git - ifi-stolz-refaktor.git/blobdiff - case-study/jdt-after/core refactoring/org/eclipse/jdt/internal/corext/refactoring/base/ReferencesInBinaryContext.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-after / core refactoring / org / eclipse / jdt / internal / corext / refactoring / base / ReferencesInBinaryContext.java
diff --git a/case-study/jdt-after/core refactoring/org/eclipse/jdt/internal/corext/refactoring/base/ReferencesInBinaryContext.java b/case-study/jdt-after/core refactoring/org/eclipse/jdt/internal/corext/refactoring/base/ReferencesInBinaryContext.java
new file mode 100644 (file)
index 0000000..145cb9f
--- /dev/null
@@ -0,0 +1,137 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 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.jdt.internal.corext.refactoring.base;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
+
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.RefactoringStatusContext;
+
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.core.search.SearchMatch;
+import org.eclipse.jdt.core.search.SearchPattern;
+
+import org.eclipse.jdt.internal.corext.refactoring.Checks;
+import org.eclipse.jdt.internal.corext.refactoring.CollectingSearchRequestor;
+import org.eclipse.jdt.internal.corext.refactoring.CuCollectingSearchRequestor;
+import org.eclipse.jdt.internal.corext.refactoring.RefactoringCoreMessages;
+import org.eclipse.jdt.internal.corext.refactoring.RefactoringScopeFactory;
+import org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine;
+import org.eclipse.jdt.internal.corext.refactoring.SearchResultGroup;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenamePackageProcessor.PackageRenamer;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.TypeOccurrenceCollector;
+
+public class ReferencesInBinaryContext extends RefactoringStatusContext {
+
+       private List<SearchMatch> fMatches= new ArrayList<SearchMatch>();
+
+       private final String fDescription;
+
+       public ReferencesInBinaryContext(String description) {
+               fDescription= description;
+       }
+
+       public String getDescription() {
+               return fDescription;
+       }
+
+
+       public void add(SearchMatch match) {
+               fMatches.add(match);
+       }
+
+       public List<SearchMatch> getMatches() {
+               return fMatches;
+       }
+
+       /*
+        * @see org.eclipse.ltk.core.refactoring.RefactoringStatusContext#getCorrespondingElement()
+        */
+       @Override
+       public Object getCorrespondingElement() {
+               return null;
+       }
+
+       public void addErrorIfNecessary(RefactoringStatus status) {
+               if (getMatches().size() != 0) {
+                       status.addError(RefactoringCoreMessages.ReferencesInBinaryContext_binaryRefsNotUpdated, this);
+               }
+       }
+
+       @Override
+       public String toString() {
+               return fDescription + " (" + fMatches.size() + " matches)"; //$NON-NLS-1$ //$NON-NLS-2$
+       }
+
+       public String generated_3088027551306131452(IProgressMonitor monitor, SearchPattern pattern, RenameTypeProcessor renametypeprocessor) throws JavaModelException {
+               renametypeprocessor.fReferences= RefactoringSearchEngine.search(
+                               pattern,
+                               RefactoringScopeFactory.create(renametypeprocessor.fType, true, false),
+                               new TypeOccurrenceCollector(renametypeprocessor.fType, this),
+                               monitor,
+                               renametypeprocessor.fCachedRefactoringStatus);
+       
+               addErrorIfNecessary(renametypeprocessor.fCachedRefactoringStatus);
+               renametypeprocessor.fReferences= Checks.excludeCompilationUnits(renametypeprocessor.fReferences, renametypeprocessor.fCachedRefactoringStatus);
+       
+               renametypeprocessor.fPreloadedElementToName= new LinkedHashMap<IJavaElement, String>();
+               renametypeprocessor.fPreloadedElementToSelection= new HashMap<IJavaElement, Boolean>();
+       
+               final String unQualifiedTypeName= renametypeprocessor.fType.getElementName();
+               return unQualifiedTypeName;
+       }
+
+       public void generated_1600395645727574193(IProgressMonitor pm, RefactoringStatus result, RenameMethodProcessor renamemethodprocessor) throws CoreException {
+               renamemethodprocessor.initializeMethodsToRename(new SubProgressMonitor(pm, 1), this);
+               pm.setTaskName(RefactoringCoreMessages.RenameMethodRefactoring_taskName_searchingForReferences);
+               renamemethodprocessor.fOccurrences= renamemethodprocessor.getOccurrences(new SubProgressMonitor(pm, 3), result, this);
+               addErrorIfNecessary(result);
+       
+               pm.setTaskName(RefactoringCoreMessages.RenameMethodRefactoring_taskName_checkingPreconditions);
+       }
+
+       public SearchResultGroup[] generated_66292574447438761(IProgressMonitor pm, RefactoringStatus status, RenameFieldProcessor renamefieldprocessor) throws JavaModelException, CoreException {
+               SearchResultGroup[] result= RefactoringSearchEngine.search(renamefieldprocessor.createSearchPattern(), renamefieldprocessor.createRefactoringScope(),
+                               new CuCollectingSearchRequestor(this), pm, status);
+               addErrorIfNecessary(status);
+       
+               return result;
+       }
+
+       public void generated_7862627152911907947(IProgressMonitor pm, RefactoringStatus result, PackageRenamer packagerenamer) throws CoreException {
+               packagerenamer.fOccurrences= packagerenamer.getReferences(new SubProgressMonitor(pm, 4), this, result);
+               packagerenamer.fReferencesToTypesInNamesakes= packagerenamer.getReferencesToTypesInNamesakes(new SubProgressMonitor(pm, 4), result);
+               packagerenamer.fReferencesToTypesInPackage= packagerenamer.getReferencesToTypesInPackage(new SubProgressMonitor(pm, 4), this, result);
+               addErrorIfNecessary(result);
+       
+               pm.setTaskName(RefactoringCoreMessages.RenamePackageRefactoring_checking);
+       }
+
+       public SearchResultGroup[] generated_7885427238097285174(final IProgressMonitor monitor, final RefactoringStatus status, SearchPattern pattern, IJavaSearchScope scope) throws JavaModelException {
+               CollectingSearchRequestor requestor= new CollectingSearchRequestor(this);
+               SearchResultGroup[] result= RefactoringSearchEngine.search(pattern, scope, requestor, new SubProgressMonitor(monitor, 1), status);
+               addErrorIfNecessary(status);
+               return result;
+       }
+
+}