Bug 563030 - updated use of changed internal JDT API

Change-Id: I67056273395acae91b5deed45a7d676eddc85898
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/apitools/org.eclipse.pde.api.tools/META-INF/MANIFEST.MF b/apitools/org.eclipse.pde.api.tools/META-INF/MANIFEST.MF
index 0d6f394..1d2fa7f 100644
--- a/apitools/org.eclipse.pde.api.tools/META-INF/MANIFEST.MF
+++ b/apitools/org.eclipse.pde.api.tools/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.pde.core;bundle-version="[3.3.102,4.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.14.0,4.0.0)",
+ org.eclipse.jdt.core;bundle-version="[3.22.0,4.0.0)",
  org.eclipse.jdt.launching;bundle-version="[3.6.100,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.text;bundle-version="[3.4.0,4.0.0)",
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder.java
index 0269584..753c8a8 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder.java
@@ -17,6 +17,7 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map.Entry;
 import java.util.Set;
 
 import org.eclipse.core.resources.IFile;
@@ -437,7 +438,7 @@
 					addInnerTypes(change.resource, change.changeKind);
 				} else {
 					// look up the source file
-					String path = (String) state.typeLocators.get(change.typeName);
+					String path = state.typeLocators.get(change.typeName);
 					if (path != null) {
 						IResource member = this.builder.getProject().findMember(path);
 						if (member != null && member.getType() == IResource.FILE) {
@@ -502,24 +503,19 @@
 		if (internedSimpleNames.length < typenames.elementSize) {
 			internedSimpleNames = null;
 		}
-		Object[] keyTable = state.getReferences().keyTable;
-		Object[] valueTable = state.getReferences().valueTable;
-		IFile file = null;
-		String typeLocator = null;
-		for (int i = 0; i < valueTable.length; i++) {
-			typeLocator = (String) keyTable[i];
-			if (typeLocator != null) {
-				ReferenceCollection refs = (ReferenceCollection) valueTable[i];
-				if (refs.includes(internedQualifiedNames, internedSimpleNames, null)) {
-					file = project.getFile(typeLocator);
-					if (file == null) {
-						continue;
-					}
-					if (ApiPlugin.DEBUG_BUILDER) {
-						System.out.println("ApiAnalysisBuilder:   adding affected source file " + file.getName()); //$NON-NLS-1$
-					}
-					addDependentTypeToContext(file, kind);
+		Set<Entry<String, ReferenceCollection>> entrySet = state.getReferences().entrySet();
+		for (Entry<String, ReferenceCollection> entry : entrySet) {
+			String typeLocator = entry.getKey();
+			ReferenceCollection refs = entry.getValue();
+			if (refs.includes(internedQualifiedNames, internedSimpleNames, null)) {
+				IFile file = project.getFile(typeLocator);
+				if (file == null) {
+					continue;
 				}
+				if (ApiPlugin.DEBUG_BUILDER) {
+					System.out.println("ApiAnalysisBuilder:   adding affected source file " + file.getName()); //$NON-NLS-1$
+				}
+				addDependentTypeToContext(file, kind);
 			}
 		}
 	}