Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 490770 | Differences between
and this patch

Collapse All | Expand All

(-)a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/comparator/tests/FieldDeltaTests.java (-4 / +29 lines)
Lines 29-38 Link Here
29
29
30
public class FieldDeltaTests extends DeltaTestSetup {
30
public class FieldDeltaTests extends DeltaTestSetup {
31
	public static Test suite() {
31
	public static Test suite() {
32
		return new TestSuite(FieldDeltaTests.class);
32
		// return new TestSuite(FieldDeltaTests.class);
33
//		TestSuite suite = new TestSuite(FieldDeltaTests.class.getName());
33
		TestSuite suite = new TestSuite(FieldDeltaTests.class.getName());
34
//		suite.addTest(new FieldDeltaTests("test75"));
34
		suite.addTest(new FieldDeltaTests("test78")); //$NON-NLS-1$
35
//		return suite;
35
		return suite;
36
	}
36
	}
37
37
38
	public FieldDeltaTests(String name) {
38
	public FieldDeltaTests(String name) {
Lines 1809-1814 Link Here
1809
		assertEquals("Wrong element type", IDelta.FIELD_ELEMENT_TYPE, child.getElementType()); //$NON-NLS-1$
1809
		assertEquals("Wrong element type", IDelta.FIELD_ELEMENT_TYPE, child.getElementType()); //$NON-NLS-1$
1810
		assertTrue("Not compatible", DeltaProcessor.isCompatible(child)); //$NON-NLS-1$
1810
		assertTrue("Not compatible", DeltaProcessor.isCompatible(child)); //$NON-NLS-1$
1811
	}
1811
	}
1812
1813
	/**
1814
	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=490770 Non-compile time
1815
	 * constant to compile time constant
1816
	 */
1817
	public void test78() {
1818
		deployBundles("test78"); //$NON-NLS-1$
1819
		IApiBaseline before = getBeforeState();
1820
		IApiBaseline after = getAfterState();
1821
		IApiComponent beforeApiComponent = before.getApiComponent(BUNDLE_NAME);
1822
		assertNotNull("no api component", beforeApiComponent); //$NON-NLS-1$
1823
		IApiComponent afterApiComponent = after.getApiComponent(BUNDLE_NAME);
1824
		assertNotNull("no api component", afterApiComponent); //$NON-NLS-1$
1825
		IDelta delta = ApiComparator.compare(beforeApiComponent, afterApiComponent, before, after,
1826
				VisibilityModifiers.API, null);
1827
		assertNotNull("No delta", delta); //$NON-NLS-1$
1828
		IDelta[] allLeavesDeltas = collectLeaves(delta);
1829
		assertEquals("Wrong size", 1, allLeavesDeltas.length); //$NON-NLS-1$
1830
		IDelta child = allLeavesDeltas[0];
1831
		assertEquals("Wrong kind", IDelta.ADDED, child.getKind()); //$NON-NLS-1$
1832
		assertEquals("Wrong flag", IDelta.VALUE, child.getFlags()); //$NON-NLS-1$
1833
		assertEquals("Wrong element type", IDelta.FIELD_ELEMENT_TYPE, child.getElementType()); //$NON-NLS-1$
1834
		assertTrue("Not compatible", DeltaProcessor.isCompatible(child)); //$NON-NLS-1$
1835
	}
1836
1812
	/**
1837
	/**
1813
	 * Check decrease field visibility - public to private
1838
	 * Check decrease field visibility - public to private
1814
	 */
1839
	 */
(-)a/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/after/X.java (+14 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2016 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
7
 *
8
 * Contributors:
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
11
public class X {
12
	public static final int i = 1;
13
	public static final int j = Integer.valueOf(0).intValue();
14
}
(-)a/apitools/org.eclipse.pde.api.tools.tests/tests-deltas/field/test78/before/X.java (+14 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2016 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
7
 *
8
 * Contributors:
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
11
public class X {
12
	public static final int i = Integer.valueOf(1).intValue();
13
	public static final int j = Integer.valueOf(0).intValue();
14
}
(-)a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/DeltaXmlVisitor.java (-1 / +1 lines)
Lines 61-67 Link Here
61
61
62
	protected void processLeafDelta(IDelta delta) {
62
	protected void processLeafDelta(IDelta delta) {
63
		Element deltaElement = fDoc.createElement(IApiXmlConstants.DELTA_ELEMENT_NAME);
63
		Element deltaElement = fDoc.createElement(IApiXmlConstants.DELTA_ELEMENT_NAME);
64
		deltaElement.setAttribute(IApiXmlConstants.ATTR_FLAGS, Integer.toString(delta.getFlags()));
64
		deltaElement.setAttribute(IApiXmlConstants.ATTR_FLAGS, Util.getDeltaFlagsName(delta.getFlags()));
65
		deltaElement.setAttribute(IApiXmlConstants.ATTR_KIND, Util.getDeltaKindName(delta));
65
		deltaElement.setAttribute(IApiXmlConstants.ATTR_KIND, Util.getDeltaKindName(delta));
66
		deltaElement.setAttribute(IApiXmlConstants.ATTR_NAME_ELEMENT_TYPE, Util.getDeltaElementType(delta));
66
		deltaElement.setAttribute(IApiXmlConstants.ATTR_NAME_ELEMENT_TYPE, Util.getDeltaElementType(delta));
67
		deltaElement.setAttribute(IApiXmlConstants.ATTR_KEY, delta.getKey());
67
		deltaElement.setAttribute(IApiXmlConstants.ATTR_KEY, delta.getKey());
(-)a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java (-137 / +56 lines)
Lines 29-34 Link Here
29
import java.io.StringReader;
29
import java.io.StringReader;
30
import java.io.UnsupportedEncodingException;
30
import java.io.UnsupportedEncodingException;
31
import java.lang.reflect.Field;
31
import java.lang.reflect.Field;
32
import java.lang.reflect.Modifier;
32
import java.nio.ByteBuffer;
33
import java.nio.ByteBuffer;
33
import java.nio.CharBuffer;
34
import java.nio.CharBuffer;
34
import java.nio.charset.Charset;
35
import java.nio.charset.Charset;
Lines 141-146 Link Here
141
	public static final String DOT_TAR_GZ = ".tar.gz"; //$NON-NLS-1$
142
	public static final String DOT_TAR_GZ = ".tar.gz"; //$NON-NLS-1$
142
	public static final String DOT_JAR = ".jar"; //$NON-NLS-1$
143
	public static final String DOT_JAR = ".jar"; //$NON-NLS-1$
143
	public static final String DOT_ZIP = ".zip"; //$NON-NLS-1$
144
	public static final String DOT_ZIP = ".zip"; //$NON-NLS-1$
145
	public static Map<Integer, String> flagsNames = new HashMap<>();
146
147
	static {
148
		Field[] declaredFields = IDelta.class.getDeclaredFields();
149
		for (Field field : declaredFields) {
150
			try {
151
				if (Modifier.isFinal(field.getModifiers()) && Modifier.isStatic(field.getModifiers()) && Modifier.isPublic(field.getModifiers())) {
152
					Integer value = Integer.valueOf(field.getInt(null));
153
					String flagName = flagsNames.get(value);
154
					flagsNames.put(value, field.getName());
155
				}
156
			} catch (IllegalAccessException e) {
157
				// ignore
158
			}
159
		}
160
	}
144
161
145
	public static final char VERSION_SEPARATOR = '(';
162
	public static final char VERSION_SEPARATOR = '(';
146
163
Lines 687-692 Link Here
687
	}
704
	}
688
705
689
	/**
706
	/**
707
	 * Return an int value that represents the given flag value. Returns -1 if
708
	 * the flag value cannot be determined.
709
	 *
710
	 * @param flagName the given element type
711
	 * @return an int that represents the given flag value constant.
712
	 */
713
	public static int getDeltaFlagValue(String flagName) {
714
		Class<IDelta> IDeltaClass = IDelta.class;
715
		try {
716
			Field field = IDeltaClass.getField(flagName);
717
			return field.getInt(null);
718
		} catch (SecurityException e) {
719
			// ignore
720
		} catch (IllegalArgumentException e) {
721
			// ignore
722
		} catch (NoSuchFieldException e) {
723
			// ignore
724
		} catch (IllegalAccessException e) {
725
			// ignore
726
		}
727
		return -1;
728
	}
729
730
	/**
690
	 * Return a string that represents the given element type Returns
731
	 * Return a string that represents the given element type Returns
691
	 * {@link #UNKNOWN_ELEMENT_KIND} if the element type cannot be determined.
732
	 * {@link #UNKNOWN_ELEMENT_KIND} if the element type cannot be determined.
692
	 *
733
	 *
Lines 729-869 Link Here
729
	 * @return a string that represents the given flags.
770
	 * @return a string that represents the given flags.
730
	 */
771
	 */
731
	public static String getDeltaFlagsName(int flags) {
772
	public static String getDeltaFlagsName(int flags) {
732
		switch (flags) {
773
		String fieldName = flagsNames.get(Integer.valueOf(flags));
733
			case IDelta.ABSTRACT_TO_NON_ABSTRACT:
774
		if (fieldName != null) {
734
				return "ABSTRACT_TO_NON_ABSTRACT"; //$NON-NLS-1$
775
			return fieldName;
735
			case IDelta.ANNOTATION_DEFAULT_VALUE:
736
				return "ANNOTATION_DEFAULT_VALUE"; //$NON-NLS-1$
737
			case IDelta.API_COMPONENT:
738
				return "API_COMPONENT"; //$NON-NLS-1$
739
			case IDelta.ARRAY_TO_VARARGS:
740
				return "ARRAY_TO_VARARGS"; //$NON-NLS-1$
741
			case IDelta.CHECKED_EXCEPTION:
742
				return "CHECKED_EXCEPTION"; //$NON-NLS-1$
743
			case IDelta.CLASS_BOUND:
744
				return "CLASS_BOUND"; //$NON-NLS-1$
745
			case IDelta.CLINIT:
746
				return "CLINIT"; //$NON-NLS-1$
747
			case IDelta.CONSTRUCTOR:
748
				return "CONSTRUCTOR"; //$NON-NLS-1$
749
			case IDelta.CONTRACTED_SUPERINTERFACES_SET:
750
				return "CONTRACTED_SUPERINTERFACES_SET"; //$NON-NLS-1$
751
			case IDelta.DECREASE_ACCESS:
752
				return "DECREASE_ACCESS"; //$NON-NLS-1$
753
			case IDelta.ENUM_CONSTANT:
754
				return "ENUM_CONSTANT"; //$NON-NLS-1$
755
			case IDelta.EXECUTION_ENVIRONMENT:
756
				return "EXECUTION_ENVIRONMENT"; //$NON-NLS-1$
757
			case IDelta.EXPANDED_SUPERINTERFACES_SET:
758
				return "EXPANDED_SUPERINTERFACES_SET"; //$NON-NLS-1$
759
			case IDelta.FIELD:
760
				return "FIELD"; //$NON-NLS-1$
761
			case IDelta.FIELD_MOVED_UP:
762
				return "FIELD_MOVED_UP"; //$NON-NLS-1$
763
			case IDelta.FINAL_TO_NON_FINAL:
764
				return "FINAL_TO_NON_FINAL"; //$NON-NLS-1$
765
			case IDelta.FINAL_TO_NON_FINAL_NON_STATIC:
766
				return "FINAL_TO_NON_FINAL_NON_STATIC"; //$NON-NLS-1$
767
			case IDelta.FINAL_TO_NON_FINAL_STATIC_CONSTANT:
768
				return "FINAL_TO_NON_FINAL_STATIC_CONSTANT"; //$NON-NLS-1$
769
			case IDelta.FINAL_TO_NON_FINAL_STATIC_NON_CONSTANT:
770
				return "FINAL_TO_NON_FINAL_STATIC_NON_CONSTANT"; //$NON-NLS-1$
771
			case IDelta.INCREASE_ACCESS:
772
				return "INCREASE_ACCESS"; //$NON-NLS-1$
773
			case IDelta.INTERFACE_BOUND:
774
				return "INTERFACE_BOUND"; //$NON-NLS-1$
775
			case IDelta.METHOD:
776
				return "METHOD"; //$NON-NLS-1$
777
			case IDelta.METHOD_MOVED_UP:
778
				return "METHOD_MOVED_UP"; //$NON-NLS-1$
779
			case IDelta.METHOD_WITH_DEFAULT_VALUE:
780
				return "METHOD_WITH_DEFAULT_VALUE"; //$NON-NLS-1$
781
			case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
782
				return "METHOD_WITHOUT_DEFAULT_VALUE"; //$NON-NLS-1$
783
			case IDelta.NATIVE_TO_NON_NATIVE:
784
				return "NATIVE_TO_NON_NATIVE"; //$NON-NLS-1$
785
			case IDelta.NON_ABSTRACT_TO_ABSTRACT:
786
				return "NON_ABSTRACT_TO_ABSTRACT"; //$NON-NLS-1$
787
			case IDelta.NON_FINAL_TO_FINAL:
788
				return "NON_FINAL_TO_FINAL"; //$NON-NLS-1$
789
			case IDelta.NON_NATIVE_TO_NATIVE:
790
				return "NON_NATIVE_TO_NATIVE"; //$NON-NLS-1$
791
			case IDelta.NON_STATIC_TO_STATIC:
792
				return "NON_STATIC_TO_STATIC"; //$NON-NLS-1$
793
			case IDelta.NON_SYNCHRONIZED_TO_SYNCHRONIZED:
794
				return "NON_SYNCHRONIZED_TO_SYNCHRONIZED"; //$NON-NLS-1$
795
			case IDelta.NON_TRANSIENT_TO_TRANSIENT:
796
				return "NON_TRANSIENT_TO_TRANSIENT"; //$NON-NLS-1$
797
			case IDelta.OVERRIDEN_METHOD:
798
				return "OVERRIDEN_METHOD"; //$NON-NLS-1$
799
			case IDelta.STATIC_TO_NON_STATIC:
800
				return "STATIC_TO_NON_STATIC"; //$NON-NLS-1$
801
			case IDelta.SUPERCLASS:
802
				return "SUPERCLASS"; //$NON-NLS-1$
803
			case IDelta.SYNCHRONIZED_TO_NON_SYNCHRONIZED:
804
				return "SYNCHRONIZED_TO_NON_SYNCHRONIZED"; //$NON-NLS-1$
805
			case IDelta.TYPE_CONVERSION:
806
				return "TYPE_CONVERSION"; //$NON-NLS-1$
807
			case IDelta.TRANSIENT_TO_NON_TRANSIENT:
808
				return "TRANSIENT_TO_NON_TRANSIENT"; //$NON-NLS-1$
809
			case IDelta.TYPE:
810
				return "TYPE"; //$NON-NLS-1$
811
			case IDelta.TYPE_ARGUMENTS:
812
				return "TYPE_ARGUMENTS"; //$NON-NLS-1$
813
			case IDelta.TYPE_MEMBER:
814
				return "TYPE_MEMBER"; //$NON-NLS-1$
815
			case IDelta.TYPE_PARAMETER:
816
				return "TYPE_PARAMETER"; //$NON-NLS-1$
817
			case IDelta.TYPE_PARAMETER_NAME:
818
				return "TYPE_PARAMETER_NAME"; //$NON-NLS-1$
819
			case IDelta.TYPE_PARAMETERS:
820
				return "TYPE_PARAMETERS"; //$NON-NLS-1$
821
			case IDelta.TYPE_VISIBILITY:
822
				return "TYPE_VISIBILITY"; //$NON-NLS-1$
823
			case IDelta.UNCHECKED_EXCEPTION:
824
				return "UNCHECKED_EXCEPTION"; //$NON-NLS-1$
825
			case IDelta.VALUE:
826
				return "VALUE"; //$NON-NLS-1$
827
			case IDelta.VARARGS_TO_ARRAY:
828
				return "VARARGS_TO_ARRAY"; //$NON-NLS-1$
829
			case IDelta.RESTRICTIONS:
830
				return "RESTRICTIONS"; //$NON-NLS-1$
831
			case IDelta.API_TYPE:
832
				return "API_TYPE"; //$NON-NLS-1$
833
			case IDelta.NON_VOLATILE_TO_VOLATILE:
834
				return "NON_VOLATILE_TO_VOLATILE"; //$NON-NLS-1$
835
			case IDelta.VOLATILE_TO_NON_VOLATILE:
836
				return "VOLATILE_TO_NON_VOLATILE"; //$NON-NLS-1$
837
			case IDelta.MINOR_VERSION:
838
				return "MINOR_VERSION"; //$NON-NLS-1$
839
			case IDelta.MAJOR_VERSION:
840
				return "MAJOR_VERSION"; //$NON-NLS-1$
841
			case IDelta.API_FIELD:
842
				return "API_FIELD"; //$NON-NLS-1$
843
			case IDelta.API_METHOD:
844
				return "API_METHOD"; //$NON-NLS-1$
845
			case IDelta.API_CONSTRUCTOR:
846
				return "API_CONSTRUCTOR"; //$NON-NLS-1$
847
			case IDelta.API_ENUM_CONSTANT:
848
				return "API_ENUM_CONSTANT"; //$NON-NLS-1$
849
			case IDelta.API_METHOD_WITH_DEFAULT_VALUE:
850
				return "API_METHOD_WITH_DEFAULT_VALUE"; //$NON-NLS-1$
851
			case IDelta.API_METHOD_WITHOUT_DEFAULT_VALUE:
852
				return "API_METHOD_WITHOUT_DEFAULT_VALUE"; //$NON-NLS-1$
853
			case IDelta.TYPE_ARGUMENT:
854
				return "TYPE_ARGUMENT"; //$NON-NLS-1$
855
			case IDelta.SUPER_INTERFACE_WITH_METHODS:
856
				return "SUPER_INTERFACE_WITH_METHODS"; //$NON-NLS-1$
857
			case IDelta.REEXPORTED_API_TYPE:
858
				return "REEXPORTED_API_TYPE"; //$NON-NLS-1$
859
			case IDelta.REEXPORTED_TYPE:
860
				return "REEXPORTED_TYPE"; //$NON-NLS-1$
861
			case IDelta.METHOD_MOVED_DOWN:
862
				return "METHOD_MOVED_DOWN"; //$NON-NLS-1$
863
			case IDelta.DEPRECATION:
864
				return "DEPRECATION"; //$NON-NLS-1$
865
			default:
866
				break;
867
		}
776
		}
868
		return UNKNOWN_FLAGS;
777
		return UNKNOWN_FLAGS;
869
	}
778
	}
Lines 1400-1406 Link Here
1400
	/**
1309
	/**
1401
	 * Rewrite a parameter type signature with type erasure and using the
1310
	 * Rewrite a parameter type signature with type erasure and using the
1402
	 * parameterized type bounds lookup table. For example:
1311
	 * parameterized type bounds lookup table. For example:
1403
	 * 
1312
	 *
1404
	 * <pre>
1313
	 * <pre>
1405
	 *     expand("QList&lt;QE;&gt;;", {"E" &rarr; "Ljava.lang.Object;"}) = "QList;"
1314
	 *     expand("QList&lt;QE;&gt;;", {"E" &rarr; "Ljava.lang.Object;"}) = "QList;"
1406
	 *     expand("QE;", {"E" &rarr; "Ljava.lang.Object;"}) = "Ljava.lang.Object;"
1315
	 *     expand("QE;", {"E" &rarr; "Ljava.lang.Object;"}) = "Ljava.lang.Object;"
Lines 2372-2379 Link Here
2372
					default:
2281
					default:
2373
						return arguments[0];
2282
						return arguments[0];
2374
				}
2283
				}
2284
			case IDelta.EXECUTION_ENVIRONMENT:
2285
				StringBuilder builder = new StringBuilder();
2286
				int i = 0;
2287
				for (String argument : arguments) {
2288
					if (i != 0) {
2289
						builder.append(',');
2290
					}
2291
					builder.append(argument);
2292
					i++;
2293
				}
2294
				return String.valueOf(builder);
2375
			default:
2295
			default:
2376
				break;
2377
		}
2296
		}
2378
		return EMPTY_STRING;
2297
		return EMPTY_STRING;
2379
	}
2298
	}
(-)a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java (-3 / +9 lines)
Lines 154-160 Link Here
154
				} else {
154
				} else {
155
					this.componentID = value;
155
					this.componentID = value;
156
				}
156
				}
157
				this.flags = Integer.parseInt(attributes.getValue(IApiXmlConstants.ATTR_FLAGS));
157
				this.flags = Util.getDeltaFlagValue(attributes.getValue(IApiXmlConstants.ATTR_FLAGS));
158
				this.elementType = Util.getDeltaElementTypeValue(attributes.getValue(IApiXmlConstants.ATTR_NAME_ELEMENT_TYPE));
158
				this.elementType = Util.getDeltaElementTypeValue(attributes.getValue(IApiXmlConstants.ATTR_NAME_ELEMENT_TYPE));
159
				this.typename = attributes.getValue(IApiXmlConstants.ATTR_NAME_TYPE_NAME);
159
				this.typename = attributes.getValue(IApiXmlConstants.ATTR_NAME_TYPE_NAME);
160
				this.key = attributes.getValue(IApiXmlConstants.ATTR_KEY);
160
				this.key = attributes.getValue(IApiXmlConstants.ATTR_KEY);
Lines 209-214 Link Here
209
					case IDelta.METHOD:
209
					case IDelta.METHOD:
210
					case IDelta.METHOD_WITH_DEFAULT_VALUE:
210
					case IDelta.METHOD_WITH_DEFAULT_VALUE:
211
					case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
211
					case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
212
					case IDelta.ARRAY_TO_VARARGS:
212
						int indexOf = this.key.indexOf('(');
213
						int indexOf = this.key.indexOf('(');
213
						if (indexOf == -1) {
214
						if (indexOf == -1) {
214
							return null;
215
							return null;
Lines 235-242 Link Here
235
					case IDelta.API_FIELD:
236
					case IDelta.API_FIELD:
236
					case IDelta.ENUM_CONSTANT:
237
					case IDelta.ENUM_CONSTANT:
237
					case IDelta.API_ENUM_CONSTANT:
238
					case IDelta.API_ENUM_CONSTANT:
238
						buffer.append('#');
239
						buffer.append('#').append(this.key);
239
						buffer.append(this.key);
240
						break;
241
					case IDelta.VALUE:
242
						buffer.append('#').append(this.key).append('(').append(Messages.deltaReportTask_compile_time_constant).append(')');
240
						break;
243
						break;
241
					case IDelta.TYPE_MEMBER:
244
					case IDelta.TYPE_MEMBER:
242
					case IDelta.API_TYPE:
245
					case IDelta.API_TYPE:
Lines 298-303 Link Here
298
					case IDelta.API_BASELINE_ELEMENT_TYPE:
301
					case IDelta.API_BASELINE_ELEMENT_TYPE:
299
						buffer.append(this.key);
302
						buffer.append(this.key);
300
						break;
303
						break;
304
					case IDelta.EXECUTION_ENVIRONMENT:
305
						buffer.append(this.key).append('#').append(arguments[0]).append('(').append(Messages.deltaReportTask_entry_execution_environment).append(')');
306
						break;
301
					default:
307
					default:
302
						break;
308
						break;
303
				}
309
				}
(-)a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java (-120 / +28 lines)
Lines 101-106 Link Here
101
			case IDelta.REEXPORTED_API_TYPE:
101
			case IDelta.REEXPORTED_API_TYPE:
102
			case IDelta.REEXPORTED_TYPE:
102
			case IDelta.REEXPORTED_TYPE:
103
			case IDelta.DEPRECATION:
103
			case IDelta.DEPRECATION:
104
			case IDelta.ARRAY_TO_VARARGS:
105
			case IDelta.VALUE:
104
				buffer.append('#').append(delta.getKey());
106
				buffer.append('#').append(delta.getKey());
105
				break;
107
				break;
106
			case IDelta.MAJOR_VERSION:
108
			case IDelta.MAJOR_VERSION:
Lines 110-116 Link Here
110
			case IDelta.API_COMPONENT:
112
			case IDelta.API_COMPONENT:
111
				buffer.append(Util.getDeltaKindName(delta.getKind())).append('#').append(delta.getKey());
113
				buffer.append(Util.getDeltaKindName(delta.getKind())).append('#').append(delta.getKey());
112
				break;
114
				break;
115
			case IDelta.EXECUTION_ENVIRONMENT:
116
				buffer.append(delta.getComponentId()).append(':').append(Util.getDeltaFlagsName(delta.getFlags())).append('=').append(delta.getArguments()[0]);
117
				break;
113
			default:
118
			default:
119
				buffer.append(delta.getElementType()).append('|').append(Util.getDeltaKindName(delta.getKind())).append('|').append(Util.getDeltaFlagsName(delta.getFlags())).append('|').append(Util.getDeltaArgumentString(delta));
114
				break;
120
				break;
115
		}
121
		}
116
122
Lines 145-171 Link Here
145
							}
151
							}
146
						}
152
						}
147
						if ((this.flags & CHECK_OTHER) != 0) {
153
						if ((this.flags & CHECK_OTHER) != 0) {
148
							switch (delta.getFlags()) {
154
							if (delta.getFlags() == IDelta.OVERRIDEN_METHOD && delta.getElementType() == IDelta.INTERFACE_ELEMENT_TYPE) {
149
								case IDelta.TYPE_MEMBER:
155
								// org.eclipse.core.resources.IWorkspaceRunnable#run(..)
150
								case IDelta.METHOD:
156
								return;
151
								case IDelta.CONSTRUCTOR:
157
							}
152
								case IDelta.ENUM_CONSTANT:
158
							if (!checkExclude(delta)) {
153
								case IDelta.METHOD_WITH_DEFAULT_VALUE:
159
								super.processLeafDelta(delta);
154
								case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
155
								case IDelta.FIELD:
156
								case IDelta.TYPE:
157
								case IDelta.API_TYPE:
158
								case IDelta.API_METHOD:
159
								case IDelta.API_FIELD:
160
								case IDelta.API_CONSTRUCTOR:
161
								case IDelta.API_ENUM_CONSTANT:
162
								case IDelta.REEXPORTED_TYPE:
163
									if (!checkExclude(delta)) {
164
										super.processLeafDelta(delta);
165
									}
166
									break;
167
								default:
168
									break;
169
							}
160
							}
170
						}
161
						}
171
					} else if (Flags.isProtected(modifiers) && !RestrictionModifiers.isExtendRestriction(delta.getCurrentRestrictions())) {
162
					} else if (Flags.isProtected(modifiers) && !RestrictionModifiers.isExtendRestriction(delta.getCurrentRestrictions())) {
Lines 181-233 Link Here
181
							}
172
							}
182
						}
173
						}
183
						if ((this.flags & CHECK_OTHER) != 0) {
174
						if ((this.flags & CHECK_OTHER) != 0) {
184
							switch (delta.getFlags()) {
175
							if (!checkExclude(delta)) {
185
								case IDelta.TYPE_MEMBER:
176
								super.processLeafDelta(delta);
186
								case IDelta.METHOD:
187
								case IDelta.CONSTRUCTOR:
188
								case IDelta.ENUM_CONSTANT:
189
								case IDelta.FIELD:
190
								case IDelta.TYPE:
191
								case IDelta.API_TYPE:
192
								case IDelta.API_METHOD:
193
								case IDelta.API_FIELD:
194
								case IDelta.API_CONSTRUCTOR:
195
								case IDelta.API_ENUM_CONSTANT:
196
								case IDelta.REEXPORTED_TYPE:
197
									if (!checkExclude(delta)) {
198
										super.processLeafDelta(delta);
199
									}
200
									break;
201
								default:
202
									break;
203
							}
177
							}
204
						}
178
						}
205
					}
179
					}
206
					if (delta.getElementType() == IDelta.API_BASELINE_ELEMENT_TYPE && ((this.flags & CHECK_OTHER) != 0)) {
180
					if (delta.getElementType() == IDelta.API_BASELINE_ELEMENT_TYPE && ((this.flags & CHECK_OTHER) != 0)) {
207
						switch (delta.getKind()) {
181
						if (delta.getFlags() == IDelta.API_COMPONENT) {
208
							case IDelta.ADDED:
182
							if (!checkExclude(delta)) {
209
								if (delta.getFlags() == IDelta.API_COMPONENT) {
183
								super.processLeafDelta(delta);
210
									if (!checkExclude(delta)) {
184
							}
211
										super.processLeafDelta(delta);
212
									}
213
								}
214
								break;
215
							default:
216
								break;
217
						}
185
						}
218
					}
186
					}
219
					break;
187
					break;
220
				case IDelta.CHANGED:
188
				case IDelta.CHANGED:
221
					if ((this.flags & CHECK_OTHER) != 0) {
189
					if ((this.flags & CHECK_OTHER) != 0) {
222
						switch (delta.getFlags()) {
190
						if (!checkExclude(delta)) {
223
							case IDelta.MAJOR_VERSION:
191
							super.processLeafDelta(delta);
224
							case IDelta.MINOR_VERSION:
225
								if (!checkExclude(delta)) {
226
									super.processLeafDelta(delta);
227
								}
228
								break;
229
							default:
230
								break;
231
						}
192
						}
232
					}
193
					}
233
					break;
194
					break;
Lines 242-314 Link Here
242
							default:
203
							default:
243
								break;
204
								break;
244
						}
205
						}
206
					} else if ((this.flags & CHECK_OTHER) != 0) {
207
						if (!checkExclude(delta)) {
208
							super.processLeafDelta(delta);
209
						}
245
					}
210
					}
246
					break;
211
					break;
247
				default:
212
				default:
248
					break;
213
					break;
249
			}
214
			}
250
		} else if ((this.flags & CHECK_OTHER) != 0) {
215
		} else if ((this.flags & CHECK_OTHER) != 0) {
251
			switch (delta.getKind()) {
216
			if (Util.isVisible(delta.getNewModifiers())) {
252
				case IDelta.ADDED:
217
				if (!checkExclude(delta)) {
253
					switch (delta.getFlags()) {
218
					super.processLeafDelta(delta);
254
						case IDelta.TYPE_MEMBER:
219
				}
255
						case IDelta.METHOD:
256
						case IDelta.CONSTRUCTOR:
257
						case IDelta.ENUM_CONSTANT:
258
						case IDelta.METHOD_WITH_DEFAULT_VALUE:
259
						case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
260
						case IDelta.FIELD:
261
						case IDelta.TYPE:
262
						case IDelta.API_TYPE:
263
						case IDelta.API_METHOD:
264
						case IDelta.API_FIELD:
265
						case IDelta.API_CONSTRUCTOR:
266
						case IDelta.API_ENUM_CONSTANT:
267
						case IDelta.REEXPORTED_TYPE:
268
							if (Util.isVisible(delta.getNewModifiers())) {
269
								if (!checkExclude(delta)) {
270
									super.processLeafDelta(delta);
271
								}
272
							}
273
							break;
274
						default:
275
							break;
276
					}
277
					break;
278
				case IDelta.REMOVED:
279
					switch (delta.getFlags()) {
280
						case IDelta.TYPE_MEMBER:
281
						case IDelta.METHOD:
282
						case IDelta.CONSTRUCTOR:
283
						case IDelta.ENUM_CONSTANT:
284
						case IDelta.METHOD_WITH_DEFAULT_VALUE:
285
						case IDelta.METHOD_WITHOUT_DEFAULT_VALUE:
286
						case IDelta.FIELD:
287
						case IDelta.TYPE:
288
						case IDelta.API_TYPE:
289
						case IDelta.API_METHOD:
290
						case IDelta.API_FIELD:
291
						case IDelta.API_CONSTRUCTOR:
292
						case IDelta.API_ENUM_CONSTANT:
293
						case IDelta.REEXPORTED_API_TYPE:
294
						case IDelta.REEXPORTED_TYPE:
295
							if (Util.isVisible(delta.getOldModifiers())) {
296
								if (!checkExclude(delta)) {
297
									super.processLeafDelta(delta);
298
								}
299
							}
300
							break;
301
						case IDelta.API_COMPONENT:
302
							if (!checkExclude(delta)) {
303
								super.processLeafDelta(delta);
304
							}
305
							break;
306
						default:
307
							break;
308
					}
309
					break;
310
				default:
311
					break;
312
			}
220
			}
313
		}
221
		}
314
	}
222
	}
(-)a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/Messages.java (+2 lines)
Lines 32-37 Link Here
32
	public static String deltaReportTask_missingXmlFile;
32
	public static String deltaReportTask_missingXmlFile;
33
	public static String deltaReportTask_xmlFileLocationMustBeAFile;
33
	public static String deltaReportTask_xmlFileLocationMustBeAFile;
34
	public static String deltaReportTask_hmlFileLocationMustBeAFile;
34
	public static String deltaReportTask_hmlFileLocationMustBeAFile;
35
	public static String deltaReportTask_compile_time_constant;
36
	public static String deltaReportTask_entry_execution_environment;
35
37
36
	public static String fullReportTask_bundlesheader;
38
	public static String fullReportTask_bundlesheader;
37
	public static String fullReportTask_bundlesentry_even;
39
	public static String fullReportTask_bundlesentry_even;
(-)a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/messages.properties (+2 lines)
Lines 47-52 Link Here
47
deltaReportTask_xmlFileLocationMustBeAFile=The xml report file {0} must be a file and not a directory
47
deltaReportTask_xmlFileLocationMustBeAFile=The xml report file {0} must be a file and not a directory
48
deltaReportTask_hmlFileLocationMustBeAFile=The html report file {0} must be a file and not a directory
48
deltaReportTask_hmlFileLocationMustBeAFile=The html report file {0} must be a file and not a directory
49
deltaReportTask_couldNotCreateSAXParser=Could not create a sax parser
49
deltaReportTask_couldNotCreateSAXParser=Could not create a sax parser
50
deltaReportTask_compile_time_constant=Compile-time constant
51
deltaReportTask_entry_execution_environment=Execution Environment
50
missing_xml_files_location=The directory that contains xml reports must be specified
52
missing_xml_files_location=The directory that contains xml reports must be specified
51
invalid_directory_name=''{0}'' is not a valid directory name
53
invalid_directory_name=''{0}'' is not a valid directory name
52
could_not_create_sax_parser=Could not create a sax parser
54
could_not_create_sax_parser=Could not create a sax parser

Return to bug 490770