Revert "Revert "Revert "Bug 490770 - Freeze report should mention compatible changes"""

This reverts commit 23572f6241d42dbeddb6371c0b3a822c5d6bd658.
diff --git a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/comparator/tests/FieldDeltaTests.java b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/comparator/tests/FieldDeltaTests.java
index c9c2ab0..855d96e 100644
--- a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/comparator/tests/FieldDeltaTests.java
+++ b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/comparator/tests/FieldDeltaTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2016 IBM Corporation and others.
+ * Copyright (c) 2007, 2010 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
@@ -29,10 +29,10 @@
 
 public class FieldDeltaTests extends DeltaTestSetup {
 	public static Test suite() {
-		// return new TestSuite(FieldDeltaTests.class);
-		TestSuite suite = new TestSuite(FieldDeltaTests.class.getName());
-		suite.addTest(new FieldDeltaTests("test78")); //$NON-NLS-1$
-		return suite;
+		return new TestSuite(FieldDeltaTests.class);
+//		TestSuite suite = new TestSuite(FieldDeltaTests.class.getName());
+//		suite.addTest(new FieldDeltaTests("test75"));
+//		return suite;
 	}
 
 	public FieldDeltaTests(String name) {
@@ -1809,31 +1809,6 @@
 		assertEquals("Wrong element type", IDelta.FIELD_ELEMENT_TYPE, child.getElementType()); //$NON-NLS-1$
 		assertTrue("Not compatible", DeltaProcessor.isCompatible(child)); //$NON-NLS-1$
 	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=490770 Non-compile time
-	 * constant to compile time constant
-	 */
-	public void test78() {
-		deployBundles("test78"); //$NON-NLS-1$
-		IApiBaseline before = getBeforeState();
-		IApiBaseline after = getAfterState();
-		IApiComponent beforeApiComponent = before.getApiComponent(BUNDLE_NAME);
-		assertNotNull("no api component", beforeApiComponent); //$NON-NLS-1$
-		IApiComponent afterApiComponent = after.getApiComponent(BUNDLE_NAME);
-		assertNotNull("no api component", afterApiComponent); //$NON-NLS-1$
-		IDelta delta = ApiComparator.compare(beforeApiComponent, afterApiComponent, before, after,
-				VisibilityModifiers.API, null);
-		assertNotNull("No delta", delta); //$NON-NLS-1$
-		IDelta[] allLeavesDeltas = collectLeaves(delta);
-		assertEquals("Wrong size", 1, allLeavesDeltas.length); //$NON-NLS-1$
-		IDelta child = allLeavesDeltas[0];
-		assertEquals("Wrong kind", IDelta.ADDED, child.getKind()); //$NON-NLS-1$
-		assertEquals("Wrong flag", IDelta.VALUE, child.getFlags()); //$NON-NLS-1$
-		assertEquals("Wrong element type", IDelta.FIELD_ELEMENT_TYPE, child.getElementType()); //$NON-NLS-1$
-		assertTrue("Not compatible", DeltaProcessor.isCompatible(child)); //$NON-NLS-1$
-	}
-
 	/**
 	 * Check decrease field visibility - public to private
 	 */
diff --git a/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/after/X.java b/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/after/X.java
deleted file mode 100644
index 92078aa..0000000
--- a/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/after/X.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 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
- *******************************************************************************/
-public class X {
-	public static final int i = 1;
-	public static final int j = Integer.valueOf(0).intValue();
-}
diff --git a/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/before/X.java b/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/before/X.java
deleted file mode 100644
index 6f871e0..0000000
--- a/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/before/X.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 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
- *******************************************************************************/
-public class X {
-	public static final int i = Integer.valueOf(1).intValue();
-	public static final int j = Integer.valueOf(0).intValue();
-}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/DeltaXmlVisitor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/DeltaXmlVisitor.java
index 186eec4..61dd200 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/DeltaXmlVisitor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/DeltaXmlVisitor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2016 IBM Corporation and others.
+ * Copyright (c) 2007, 2013 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
@@ -61,7 +61,7 @@
 
 	protected void processLeafDelta(IDelta delta) {
 		Element deltaElement = fDoc.createElement(IApiXmlConstants.DELTA_ELEMENT_NAME);
-		deltaElement.setAttribute(IApiXmlConstants.ATTR_FLAGS, Util.getDeltaFlagsName(delta.getFlags()));
+		deltaElement.setAttribute(IApiXmlConstants.ATTR_FLAGS, Integer.toString(delta.getFlags()));
 		deltaElement.setAttribute(IApiXmlConstants.ATTR_KIND, Util.getDeltaKindName(delta));
 		deltaElement.setAttribute(IApiXmlConstants.ATTR_NAME_ELEMENT_TYPE, Util.getDeltaElementType(delta));
 		deltaElement.setAttribute(IApiXmlConstants.ATTR_KEY, delta.getKey());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
index 2e85e27..02723d2 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2016 IBM Corporation and others.
+ * Copyright (c) 2007, 2013 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
@@ -29,7 +29,6 @@
 import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.nio.ByteBuffer;
 import java.nio.CharBuffer;
 import java.nio.charset.Charset;
@@ -142,21 +141,6 @@
 	public static final String DOT_TAR_GZ = ".tar.gz"; //$NON-NLS-1$
 	public static final String DOT_JAR = ".jar"; //$NON-NLS-1$
 	public static final String DOT_ZIP = ".zip"; //$NON-NLS-1$
-	public static Map<Integer, String> flagsNames = new HashMap<>();
-
-	static {
-		Field[] declaredFields = IDelta.class.getDeclaredFields();
-		for (Field field : declaredFields) {
-			try {
-				if (Modifier.isFinal(field.getModifiers()) && Modifier.isStatic(field.getModifiers()) && Modifier.isPublic(field.getModifiers())) {
-					Integer value = Integer.valueOf(field.getInt(null));
-					flagsNames.put(value, field.getName());
-				}
-			} catch (IllegalAccessException e) {
-				// ignore
-			}
-		}
-	}
 
 	public static final char VERSION_SEPARATOR = '(';
 
@@ -703,30 +687,6 @@
 	}
 
 	/**
-	 * Return an int value that represents the given flag value. Returns -1 if
-	 * the flag value cannot be determined.
-	 *
-	 * @param flagName the given element type
-	 * @return an int that represents the given flag value constant.
-	 */
-	public static int getDeltaFlagValue(String flagName) {
-		Class<IDelta> IDeltaClass = IDelta.class;
-		try {
-			Field field = IDeltaClass.getField(flagName);
-			return field.getInt(null);
-		} catch (SecurityException e) {
-			// ignore
-		} catch (IllegalArgumentException e) {
-			// ignore
-		} catch (NoSuchFieldException e) {
-			// ignore
-		} catch (IllegalAccessException e) {
-			// ignore
-		}
-		return -1;
-	}
-
-	/**
 	 * Return a string that represents the given element type Returns
 	 * {@link #UNKNOWN_ELEMENT_KIND} if the element type cannot be determined.
 	 *
@@ -769,9 +729,141 @@
 	 * @return a string that represents the given flags.
 	 */
 	public static String getDeltaFlagsName(int flags) {
-		String fieldName = flagsNames.get(Integer.valueOf(flags));
-		if (fieldName != null) {
-			return fieldName;
+		switch (flags) {
+			case IDelta.ABSTRACT_TO_NON_ABSTRACT:
+				return "ABSTRACT_TO_NON_ABSTRACT"; //$NON-NLS-1$
+			case IDelta.ANNOTATION_DEFAULT_VALUE:
+				return "ANNOTATION_DEFAULT_VALUE"; //$NON-NLS-1$
+			case IDelta.API_COMPONENT:
+				return "API_COMPONENT"; //$NON-NLS-1$
+			case IDelta.ARRAY_TO_VARARGS:
+				return "ARRAY_TO_VARARGS"; //$NON-NLS-1$
+			case IDelta.CHECKED_EXCEPTION:
+				return "CHECKED_EXCEPTION"; //$NON-NLS-1$
+			case IDelta.CLASS_BOUND:
+				return "CLASS_BOUND"; //$NON-NLS-1$
+			case IDelta.CLINIT:
+				return "CLINIT"; //$NON-NLS-1$
+			case IDelta.CONSTRUCTOR:
+				return "CONSTRUCTOR"; //$NON-NLS-1$
+			case IDelta.CONTRACTED_SUPERINTERFACES_SET:
+				return "CONTRACTED_SUPERINTERFACES_SET"; //$NON-NLS-1$
+			case IDelta.DECREASE_ACCESS:
+				return "DECREASE_ACCESS"; //$NON-NLS-1$
+			case IDelta.ENUM_CONSTANT:
+				return "ENUM_CONSTANT"; //$NON-NLS-1$
+			case IDelta.EXECUTION_ENVIRONMENT:
+				return "EXECUTION_ENVIRONMENT"; //$NON-NLS-1$
+			case IDelta.EXPANDED_SUPERINTERFACES_SET:
+				return "EXPANDED_SUPERINTERFACES_SET"; //$NON-NLS-1$
+			case IDelta.FIELD:
+				return "FIELD"; //$NON-NLS-1$
+			case IDelta.FIELD_MOVED_UP:
+				return "FIELD_MOVED_UP"; //$NON-NLS-1$
+			case IDelta.FINAL_TO_NON_FINAL:
+				return "FINAL_TO_NON_FINAL"; //$NON-NLS-1$
+			case IDelta.FINAL_TO_NON_FINAL_NON_STATIC:
+				return "FINAL_TO_NON_FINAL_NON_STATIC"; //$NON-NLS-1$
+			case IDelta.FINAL_TO_NON_FINAL_STATIC_CONSTANT:
+				return "FINAL_TO_NON_FINAL_STATIC_CONSTANT"; //$NON-NLS-1$
+			case IDelta.FINAL_TO_NON_FINAL_STATIC_NON_CONSTANT:
+				return "FINAL_TO_NON_FINAL_STATIC_NON_CONSTANT"; //$NON-NLS-1$
+			case IDelta.INCREASE_ACCESS:
+				return "INCREASE_ACCESS"; //$NON-NLS-1$
+			case IDelta.INTERFACE_BOUND:
+				return "INTERFACE_BOUND"; //$NON-NLS-1$
+			case IDelta.METHOD:
+				return "METHOD"; //$NON-NLS-1$
+			case IDelta.METHOD_MOVED_UP:
+				return "METHOD_MOVED_UP"; //$NON-NLS-1$
+			case IDelta.METHOD_WITH_DEFAULT_VALUE:
+				return "METHOD_WITH_DEFAULT_VALUE"; //$NON-NLS-1$
+			case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
+				return "METHOD_WITHOUT_DEFAULT_VALUE"; //$NON-NLS-1$
+			case IDelta.NATIVE_TO_NON_NATIVE:
+				return "NATIVE_TO_NON_NATIVE"; //$NON-NLS-1$
+			case IDelta.NON_ABSTRACT_TO_ABSTRACT:
+				return "NON_ABSTRACT_TO_ABSTRACT"; //$NON-NLS-1$
+			case IDelta.NON_FINAL_TO_FINAL:
+				return "NON_FINAL_TO_FINAL"; //$NON-NLS-1$
+			case IDelta.NON_NATIVE_TO_NATIVE:
+				return "NON_NATIVE_TO_NATIVE"; //$NON-NLS-1$
+			case IDelta.NON_STATIC_TO_STATIC:
+				return "NON_STATIC_TO_STATIC"; //$NON-NLS-1$
+			case IDelta.NON_SYNCHRONIZED_TO_SYNCHRONIZED:
+				return "NON_SYNCHRONIZED_TO_SYNCHRONIZED"; //$NON-NLS-1$
+			case IDelta.NON_TRANSIENT_TO_TRANSIENT:
+				return "NON_TRANSIENT_TO_TRANSIENT"; //$NON-NLS-1$
+			case IDelta.OVERRIDEN_METHOD:
+				return "OVERRIDEN_METHOD"; //$NON-NLS-1$
+			case IDelta.STATIC_TO_NON_STATIC:
+				return "STATIC_TO_NON_STATIC"; //$NON-NLS-1$
+			case IDelta.SUPERCLASS:
+				return "SUPERCLASS"; //$NON-NLS-1$
+			case IDelta.SYNCHRONIZED_TO_NON_SYNCHRONIZED:
+				return "SYNCHRONIZED_TO_NON_SYNCHRONIZED"; //$NON-NLS-1$
+			case IDelta.TYPE_CONVERSION:
+				return "TYPE_CONVERSION"; //$NON-NLS-1$
+			case IDelta.TRANSIENT_TO_NON_TRANSIENT:
+				return "TRANSIENT_TO_NON_TRANSIENT"; //$NON-NLS-1$
+			case IDelta.TYPE:
+				return "TYPE"; //$NON-NLS-1$
+			case IDelta.TYPE_ARGUMENTS:
+				return "TYPE_ARGUMENTS"; //$NON-NLS-1$
+			case IDelta.TYPE_MEMBER:
+				return "TYPE_MEMBER"; //$NON-NLS-1$
+			case IDelta.TYPE_PARAMETER:
+				return "TYPE_PARAMETER"; //$NON-NLS-1$
+			case IDelta.TYPE_PARAMETER_NAME:
+				return "TYPE_PARAMETER_NAME"; //$NON-NLS-1$
+			case IDelta.TYPE_PARAMETERS:
+				return "TYPE_PARAMETERS"; //$NON-NLS-1$
+			case IDelta.TYPE_VISIBILITY:
+				return "TYPE_VISIBILITY"; //$NON-NLS-1$
+			case IDelta.UNCHECKED_EXCEPTION:
+				return "UNCHECKED_EXCEPTION"; //$NON-NLS-1$
+			case IDelta.VALUE:
+				return "VALUE"; //$NON-NLS-1$
+			case IDelta.VARARGS_TO_ARRAY:
+				return "VARARGS_TO_ARRAY"; //$NON-NLS-1$
+			case IDelta.RESTRICTIONS:
+				return "RESTRICTIONS"; //$NON-NLS-1$
+			case IDelta.API_TYPE:
+				return "API_TYPE"; //$NON-NLS-1$
+			case IDelta.NON_VOLATILE_TO_VOLATILE:
+				return "NON_VOLATILE_TO_VOLATILE"; //$NON-NLS-1$
+			case IDelta.VOLATILE_TO_NON_VOLATILE:
+				return "VOLATILE_TO_NON_VOLATILE"; //$NON-NLS-1$
+			case IDelta.MINOR_VERSION:
+				return "MINOR_VERSION"; //$NON-NLS-1$
+			case IDelta.MAJOR_VERSION:
+				return "MAJOR_VERSION"; //$NON-NLS-1$
+			case IDelta.API_FIELD:
+				return "API_FIELD"; //$NON-NLS-1$
+			case IDelta.API_METHOD:
+				return "API_METHOD"; //$NON-NLS-1$
+			case IDelta.API_CONSTRUCTOR:
+				return "API_CONSTRUCTOR"; //$NON-NLS-1$
+			case IDelta.API_ENUM_CONSTANT:
+				return "API_ENUM_CONSTANT"; //$NON-NLS-1$
+			case IDelta.API_METHOD_WITH_DEFAULT_VALUE:
+				return "API_METHOD_WITH_DEFAULT_VALUE"; //$NON-NLS-1$
+			case IDelta.API_METHOD_WITHOUT_DEFAULT_VALUE:
+				return "API_METHOD_WITHOUT_DEFAULT_VALUE"; //$NON-NLS-1$
+			case IDelta.TYPE_ARGUMENT:
+				return "TYPE_ARGUMENT"; //$NON-NLS-1$
+			case IDelta.SUPER_INTERFACE_WITH_METHODS:
+				return "SUPER_INTERFACE_WITH_METHODS"; //$NON-NLS-1$
+			case IDelta.REEXPORTED_API_TYPE:
+				return "REEXPORTED_API_TYPE"; //$NON-NLS-1$
+			case IDelta.REEXPORTED_TYPE:
+				return "REEXPORTED_TYPE"; //$NON-NLS-1$
+			case IDelta.METHOD_MOVED_DOWN:
+				return "METHOD_MOVED_DOWN"; //$NON-NLS-1$
+			case IDelta.DEPRECATION:
+				return "DEPRECATION"; //$NON-NLS-1$
+			default:
+				break;
 		}
 		return UNKNOWN_FLAGS;
 	}
@@ -1279,7 +1371,7 @@
 	/**
 	 * Rewrite a parameter type signature with type erasure and using the
 	 * parameterized type bounds lookup table. For example:
-	 *
+	 * 
 	 * <pre>
 	 *     expand("QList&lt;QE;&gt;;", {"E" &rarr; "Ljava.lang.Object;"}) = "QList;"
 	 *     expand("QE;", {"E" &rarr; "Ljava.lang.Object;"}) = "Ljava.lang.Object;"
@@ -2251,18 +2343,8 @@
 					default:
 						return arguments[0];
 				}
-			case IDelta.EXECUTION_ENVIRONMENT:
-				StringBuilder builder = new StringBuilder();
-				int i = 0;
-				for (String argument : arguments) {
-					if (i != 0) {
-						builder.append(',');
-					}
-					builder.append(argument);
-					i++;
-				}
-				return String.valueOf(builder);
 			default:
+				break;
 		}
 		return EMPTY_STRING;
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java
index 6585155..4b1b74b 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2016 IBM Corporation and others.
+ * Copyright (c) 2008, 2013 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
@@ -154,7 +154,7 @@
 				} else {
 					this.componentID = value;
 				}
-				this.flags = Util.getDeltaFlagValue(attributes.getValue(IApiXmlConstants.ATTR_FLAGS));
+				this.flags = Integer.parseInt(attributes.getValue(IApiXmlConstants.ATTR_FLAGS));
 				this.elementType = Util.getDeltaElementTypeValue(attributes.getValue(IApiXmlConstants.ATTR_NAME_ELEMENT_TYPE));
 				this.typename = attributes.getValue(IApiXmlConstants.ATTR_NAME_TYPE_NAME);
 				this.key = attributes.getValue(IApiXmlConstants.ATTR_KEY);
@@ -209,7 +209,6 @@
 					case IDelta.METHOD:
 					case IDelta.METHOD_WITH_DEFAULT_VALUE:
 					case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
-					case IDelta.ARRAY_TO_VARARGS:
 						int indexOf = this.key.indexOf('(');
 						if (indexOf == -1) {
 							return null;
@@ -236,10 +235,8 @@
 					case IDelta.API_FIELD:
 					case IDelta.ENUM_CONSTANT:
 					case IDelta.API_ENUM_CONSTANT:
-						buffer.append('#').append(this.key);
-						break;
-					case IDelta.VALUE:
-						buffer.append('#').append(this.key).append('(').append(Messages.deltaReportTask_compile_time_constant).append(')');
+						buffer.append('#');
+						buffer.append(this.key);
 						break;
 					case IDelta.TYPE_MEMBER:
 					case IDelta.API_TYPE:
@@ -301,9 +298,6 @@
 					case IDelta.API_BASELINE_ELEMENT_TYPE:
 						buffer.append(this.key);
 						break;
-					case IDelta.EXECUTION_ENVIRONMENT:
-						buffer.append(this.key).append('#').append(arguments[0]).append('(').append(Messages.deltaReportTask_entry_execution_environment).append(')');
-						break;
 					default:
 						break;
 				}
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java
index a93c774..913723b 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2016 IBM Corporation and others.
+ * Copyright (c) 2008, 2013 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
@@ -101,8 +101,6 @@
 			case IDelta.REEXPORTED_API_TYPE:
 			case IDelta.REEXPORTED_TYPE:
 			case IDelta.DEPRECATION:
-			case IDelta.ARRAY_TO_VARARGS:
-			case IDelta.VALUE:
 				buffer.append('#').append(delta.getKey());
 				break;
 			case IDelta.MAJOR_VERSION:
@@ -112,11 +110,7 @@
 			case IDelta.API_COMPONENT:
 				buffer.append(Util.getDeltaKindName(delta.getKind())).append('#').append(delta.getKey());
 				break;
-			case IDelta.EXECUTION_ENVIRONMENT:
-				buffer.append(delta.getComponentId()).append(':').append(Util.getDeltaFlagsName(delta.getFlags())).append('=').append(delta.getArguments()[0]);
-				break;
 			default:
-				buffer.append(delta.getElementType()).append('|').append(Util.getDeltaKindName(delta.getKind())).append('|').append(Util.getDeltaFlagsName(delta.getFlags())).append('|').append(Util.getDeltaArgumentString(delta));
 				break;
 		}
 
@@ -151,12 +145,27 @@
 							}
 						}
 						if ((this.flags & CHECK_OTHER) != 0) {
-							if (delta.getFlags() == IDelta.OVERRIDEN_METHOD && delta.getElementType() == IDelta.INTERFACE_ELEMENT_TYPE) {
-								// org.eclipse.core.resources.IWorkspaceRunnable#run(..)
-								return;
-							}
-							if (!checkExclude(delta)) {
-								super.processLeafDelta(delta);
+							switch (delta.getFlags()) {
+								case IDelta.TYPE_MEMBER:
+								case IDelta.METHOD:
+								case IDelta.CONSTRUCTOR:
+								case IDelta.ENUM_CONSTANT:
+								case IDelta.METHOD_WITH_DEFAULT_VALUE:
+								case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
+								case IDelta.FIELD:
+								case IDelta.TYPE:
+								case IDelta.API_TYPE:
+								case IDelta.API_METHOD:
+								case IDelta.API_FIELD:
+								case IDelta.API_CONSTRUCTOR:
+								case IDelta.API_ENUM_CONSTANT:
+								case IDelta.REEXPORTED_TYPE:
+									if (!checkExclude(delta)) {
+										super.processLeafDelta(delta);
+									}
+									break;
+								default:
+									break;
 							}
 						}
 					} else if (Flags.isProtected(modifiers) && !RestrictionModifiers.isExtendRestriction(delta.getCurrentRestrictions())) {
@@ -172,23 +181,53 @@
 							}
 						}
 						if ((this.flags & CHECK_OTHER) != 0) {
-							if (!checkExclude(delta)) {
-								super.processLeafDelta(delta);
+							switch (delta.getFlags()) {
+								case IDelta.TYPE_MEMBER:
+								case IDelta.METHOD:
+								case IDelta.CONSTRUCTOR:
+								case IDelta.ENUM_CONSTANT:
+								case IDelta.FIELD:
+								case IDelta.TYPE:
+								case IDelta.API_TYPE:
+								case IDelta.API_METHOD:
+								case IDelta.API_FIELD:
+								case IDelta.API_CONSTRUCTOR:
+								case IDelta.API_ENUM_CONSTANT:
+								case IDelta.REEXPORTED_TYPE:
+									if (!checkExclude(delta)) {
+										super.processLeafDelta(delta);
+									}
+									break;
+								default:
+									break;
 							}
 						}
 					}
 					if (delta.getElementType() == IDelta.API_BASELINE_ELEMENT_TYPE && ((this.flags & CHECK_OTHER) != 0)) {
-						if (delta.getFlags() == IDelta.API_COMPONENT) {
-							if (!checkExclude(delta)) {
-								super.processLeafDelta(delta);
-							}
+						switch (delta.getKind()) {
+							case IDelta.ADDED:
+								if (delta.getFlags() == IDelta.API_COMPONENT) {
+									if (!checkExclude(delta)) {
+										super.processLeafDelta(delta);
+									}
+								}
+								break;
+							default:
+								break;
 						}
 					}
 					break;
 				case IDelta.CHANGED:
 					if ((this.flags & CHECK_OTHER) != 0) {
-						if (!checkExclude(delta)) {
-							super.processLeafDelta(delta);
+						switch (delta.getFlags()) {
+							case IDelta.MAJOR_VERSION:
+							case IDelta.MINOR_VERSION:
+								if (!checkExclude(delta)) {
+									super.processLeafDelta(delta);
+								}
+								break;
+							default:
+								break;
 						}
 					}
 					break;
@@ -203,20 +242,73 @@
 							default:
 								break;
 						}
-					} else if ((this.flags & CHECK_OTHER) != 0) {
-						if (!checkExclude(delta)) {
-							super.processLeafDelta(delta);
-						}
 					}
 					break;
 				default:
 					break;
 			}
 		} else if ((this.flags & CHECK_OTHER) != 0) {
-			if (Util.isVisible(delta.getNewModifiers())) {
-				if (!checkExclude(delta)) {
-					super.processLeafDelta(delta);
-				}
+			switch (delta.getKind()) {
+				case IDelta.ADDED:
+					switch (delta.getFlags()) {
+						case IDelta.TYPE_MEMBER:
+						case IDelta.METHOD:
+						case IDelta.CONSTRUCTOR:
+						case IDelta.ENUM_CONSTANT:
+						case IDelta.METHOD_WITH_DEFAULT_VALUE:
+						case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
+						case IDelta.FIELD:
+						case IDelta.TYPE:
+						case IDelta.API_TYPE:
+						case IDelta.API_METHOD:
+						case IDelta.API_FIELD:
+						case IDelta.API_CONSTRUCTOR:
+						case IDelta.API_ENUM_CONSTANT:
+						case IDelta.REEXPORTED_TYPE:
+							if (Util.isVisible(delta.getNewModifiers())) {
+								if (!checkExclude(delta)) {
+									super.processLeafDelta(delta);
+								}
+							}
+							break;
+						default:
+							break;
+					}
+					break;
+				case IDelta.REMOVED:
+					switch (delta.getFlags()) {
+						case IDelta.TYPE_MEMBER:
+						case IDelta.METHOD:
+						case IDelta.CONSTRUCTOR:
+						case IDelta.ENUM_CONSTANT:
+						case IDelta.METHOD_WITH_DEFAULT_VALUE:
+						case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
+						case IDelta.FIELD:
+						case IDelta.TYPE:
+						case IDelta.API_TYPE:
+						case IDelta.API_METHOD:
+						case IDelta.API_FIELD:
+						case IDelta.API_CONSTRUCTOR:
+						case IDelta.API_ENUM_CONSTANT:
+						case IDelta.REEXPORTED_API_TYPE:
+						case IDelta.REEXPORTED_TYPE:
+							if (Util.isVisible(delta.getOldModifiers())) {
+								if (!checkExclude(delta)) {
+									super.processLeafDelta(delta);
+								}
+							}
+							break;
+						case IDelta.API_COMPONENT:
+							if (!checkExclude(delta)) {
+								super.processLeafDelta(delta);
+							}
+							break;
+						default:
+							break;
+					}
+					break;
+				default:
+					break;
 			}
 		}
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/Messages.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/Messages.java
index ef44633..dd59e81 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/Messages.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/Messages.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2016 IBM Corporation and others.
+ * Copyright (c) 2008, 2013 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
@@ -32,8 +32,6 @@
 	public static String deltaReportTask_missingXmlFile;
 	public static String deltaReportTask_xmlFileLocationMustBeAFile;
 	public static String deltaReportTask_hmlFileLocationMustBeAFile;
-	public static String deltaReportTask_compile_time_constant;
-	public static String deltaReportTask_entry_execution_environment;
 
 	public static String fullReportTask_bundlesheader;
 	public static String fullReportTask_bundlesentry_even;
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/messages.properties b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/messages.properties
index 3705e7e..c7e87d0 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/messages.properties
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/messages.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2008, 2016 IBM Corporation and others.
+# Copyright (c) 2008, 2013 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
@@ -47,8 +47,6 @@
 deltaReportTask_xmlFileLocationMustBeAFile=The xml report file {0} must be a file and not a directory
 deltaReportTask_hmlFileLocationMustBeAFile=The html report file {0} must be a file and not a directory
 deltaReportTask_couldNotCreateSAXParser=Could not create a sax parser
-deltaReportTask_compile_time_constant=Compile-time constant
-deltaReportTask_entry_execution_environment=Execution Environment
 missing_xml_files_location=The directory that contains xml reports must be specified
 invalid_directory_name=''{0}'' is not a valid directory name
 could_not_create_sax_parser=Could not create a sax parser