| 1 | /******************************************************************************* | 
| 2 |  * Copyright (c) 2008, 2009 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 | package org.eclipse.pde.api.tools.internal.comparator; | 
| 12 |   | 
| 13 | import java.util.Enumeration; | 
| 14 | import java.util.Hashtable; | 
| 15 | import java.util.Locale; | 
| 16 | import java.util.MissingResourceException; | 
| 17 | import java.util.ResourceBundle; | 
| 18 |   | 
| 19 | import org.eclipse.jdt.core.Flags; | 
| 20 | import org.eclipse.osgi.util.NLS; | 
| 21 | import org.eclipse.pde.api.tools.internal.provisional.RestrictionModifiers; | 
| 22 | import org.eclipse.pde.api.tools.internal.provisional.comparator.IDelta; | 
| 23 |   | 
| 24 | import com.ibm.icu.text.MessageFormat; | 
| 25 |   | 
| 26 | /** | 
| 27 |  * Class that manages the messages for compatible deltas. | 
| 28 |  */ | 
| 29 | public class Messages extends NLS { | 
| 30 |         /** | 
| 31 |          * The current mapping of problem id to message | 
| 32 |          */ | 
| 33 |         private static Hashtable fMessages = null; | 
| 34 |   | 
| 35 |         public static String problem_message_not_found; | 
| 36 |   | 
| 37 |         static { | 
| 38 |                 // initialize resource bundle | 
| 39 |                 NLS.initializeMessages("org.eclipse.pde.api.tools.internal.comparator.messages", Messages.class); //$NON-NLS-1$ | 
| 40 |         } | 
| 41 |   | 
| 42 |         private Messages() { | 
| 43 |         } | 
| 44 |          | 
| 45 |         /** | 
| 46 |          * This method initializes the MessageTemplates class variable according | 
| 47 |          * to the current Locale. | 
| 48 |          * @param loc Locale | 
| 49 |          * @return HashtableOfInt | 
| 50 |          */ | 
| 51 |         public static Hashtable loadMessageTemplates(Locale loc) { | 
| 52 |                 ResourceBundle bundle = null; | 
| 53 |                 String bundleName = "org.eclipse.pde.api.tools.internal.comparator.compatible_delta_messages"; //$NON-NLS-1$ | 
| 54 |                 try { | 
| 55 |                         bundle = ResourceBundle.getBundle(bundleName, loc);  | 
| 56 |                 } catch(MissingResourceException e) { | 
| 57 |                         System.out.println("Missing resource : " + bundleName.replace('.', '/') + ".properties for locale " + loc); //$NON-NLS-1$//$NON-NLS-2$ | 
| 58 |                         throw e; | 
| 59 |                 } | 
| 60 |                 Hashtable templates = new Hashtable(700); | 
| 61 |                 Enumeration keys = bundle.getKeys(); | 
| 62 |                 while (keys.hasMoreElements()) { | 
| 63 |                         String key = (String)keys.nextElement(); | 
| 64 |                         try { | 
| 65 |                                 int messageID = Integer.parseInt(key); | 
| 66 |                                 templates.put(new Integer(messageID), bundle.getString(key)); | 
| 67 |                         } catch(NumberFormatException e) { | 
| 68 |                                 // key ill-formed | 
| 69 |                         } catch (MissingResourceException e) { | 
| 70 |                                 // available ID | 
| 71 |                         } | 
| 72 |                 } | 
| 73 |                 return templates; | 
| 74 |         } | 
| 75 |   | 
| 76 |         public static String getCompatibleLocalizedMessage(Delta delta) { | 
| 77 |                 if(fMessages == null) { | 
| 78 |                         fMessages = loadMessageTemplates(Locale.getDefault()); | 
| 79 |                 } | 
| 80 |                 Integer key = new Integer(getKey(delta)); | 
| 81 |                 String message = (String) fMessages.get(key); | 
| 82 |                 if(message == null) { | 
| 83 |                         return MessageFormat.format(Messages.problem_message_not_found, new String[] { String.valueOf(key)}); | 
| 84 |                 } | 
| 85 |                 String[] arguments = delta.getArguments(); | 
| 86 |                 if (arguments.length != 0) | 
| 87 |                         return MessageFormat.format(message, arguments); | 
| 88 |                 return message; | 
| 89 |         } | 
| 90 |   | 
| 91 |         private static int getKey(IDelta delta) { | 
| 92 |                 switch(delta.getElementType()) { | 
| 93 |                         case IDelta.ANNOTATION_ELEMENT_TYPE : | 
| 94 |                                 switch(delta.getKind()) { | 
| 95 |                                         case IDelta.ADDED : | 
| 96 |                                                 switch(delta.getFlags()) { | 
| 97 |                                                         case IDelta.METHOD_WITH_DEFAULT_VALUE : | 
| 98 |                                                                 return 1; | 
| 99 |                                                         case IDelta.DEPRECATION : | 
| 100 |                                                                 return 110; | 
| 101 |                                                 } | 
| 102 |                                                 break; | 
| 103 |                                         case IDelta.CHANGED : | 
| 104 |                                                 switch(delta.getFlags()) { | 
| 105 |                                                         case IDelta.DECREASE_ACCESS : | 
| 106 |                                                                 return 101; | 
| 107 |                                                 } | 
| 108 |                                                 break; | 
| 109 |                                         case IDelta.REMOVED : | 
| 110 |                                                 switch(delta.getFlags()) { | 
| 111 |                                                         case IDelta.DEPRECATION : | 
| 112 |                                                                 return 111; | 
| 113 |                                                 } | 
| 114 |                                                 break; | 
| 115 |                                 } | 
| 116 |                                 break; | 
| 117 |                         case IDelta.API_COMPONENT_ELEMENT_TYPE : | 
| 118 |                                 switch(delta.getKind()) { | 
| 119 |                                         case IDelta.ADDED : | 
| 120 |                                                 switch(delta.getFlags()) { | 
| 121 |                                                         case IDelta.EXECUTION_ENVIRONMENT : | 
| 122 |                                                                 return 2; | 
| 123 |                                                         case IDelta.TYPE : | 
| 124 |                                                                 return 3; | 
| 125 |                                                         case IDelta.REEXPORTED_TYPE : | 
| 126 |                                                                 return 109; | 
| 127 |                                                 } | 
| 128 |                                                 break; | 
| 129 |                                         case IDelta.CHANGED : | 
| 130 |                                                 switch(delta.getFlags()) { | 
| 131 |                                                         case IDelta.TYPE_VISIBILITY : return 4; | 
| 132 |                                                         case IDelta.MAJOR_VERSION : return 95; | 
| 133 |                                                         case IDelta.MINOR_VERSION : return 96; | 
| 134 |                                                 } | 
| 135 |                                                 break; | 
| 136 |                                         case IDelta.REMOVED : | 
| 137 |                                                 if (delta.getFlags() == IDelta.EXECUTION_ENVIRONMENT) { | 
| 138 |                                                         return 5; | 
| 139 |                                                 } | 
| 140 |                                 } | 
| 141 |                                 break; | 
| 142 |                         case IDelta.API_PROFILE_ELEMENT_TYPE : | 
| 143 |                                 switch(delta.getKind()) { | 
| 144 |                                         case IDelta.ADDED : | 
| 145 |                                                 if (delta.getFlags() == IDelta.API_COMPONENT) { | 
| 146 |                                                         return 6; | 
| 147 |                                                 } | 
| 148 |                                 } | 
| 149 |                                 break; | 
| 150 |                         case IDelta.CLASS_ELEMENT_TYPE : | 
| 151 |                                 switch(delta.getKind()) { | 
| 152 |                                         case IDelta.ADDED : | 
| 153 |                                                 switch(delta.getFlags()) { | 
| 154 |                                                         case IDelta.DEPRECATION : | 
| 155 |                                                                 return 110; | 
| 156 |                                                         case IDelta.CLINIT : | 
| 157 |                                                                 return 7; | 
| 158 |                                                         case IDelta.CONSTRUCTOR : | 
| 159 |                                                                 return 8; | 
| 160 |                                                         case IDelta.FIELD : | 
| 161 |                                                                 if (Flags.isProtected(delta.getNewModifiers())) { | 
| 162 |                                                                         return 9; | 
| 163 |                                                                 } | 
| 164 |                                                                 if (Flags.isStatic(delta.getNewModifiers())) { | 
| 165 |                                                                         return 10; | 
| 166 |                                                                 } | 
| 167 |                                                                 if (Flags.isPublic(delta.getNewModifiers())) { | 
| 168 |                                                                         return 11; | 
| 169 |                                                                 } | 
| 170 |                                                                 return 80; | 
| 171 |                                                         case IDelta.METHOD : | 
| 172 |                                                                 if (!Flags.isAbstract(delta.getNewModifiers())) { | 
| 173 |                                                                         return 12; | 
| 174 |                                                                 } | 
| 175 |                                                                 return 13; | 
| 176 |                                                         case IDelta.OVERRIDEN_METHOD : | 
| 177 |                                                                 return 14; | 
| 178 |                                                         case IDelta.SUPERCLASS : | 
| 179 |                                                                 return 15; | 
| 180 |                                                         case IDelta.TYPE_MEMBER : | 
| 181 |                                                                 return 16; | 
| 182 |                                                         case IDelta.TYPE_PARAMETERS : | 
| 183 |                                                                 return 17; | 
| 184 |                                                         case IDelta.METHOD_MOVED_DOWN : | 
| 185 |                                                                 return 97; | 
| 186 |                                                         case IDelta.RESTRICTIONS : | 
| 187 |                                                                 return 108; | 
| 188 |                                                 } | 
| 189 |                                                 break; | 
| 190 |                                         case IDelta.CHANGED : | 
| 191 |                                                 switch(delta.getFlags()) { | 
| 192 |                                                         case IDelta.ABSTRACT_TO_NON_ABSTRACT : | 
| 193 |                                                                 return 19; | 
| 194 |                                                         case IDelta.EXPANDED_SUPERINTERFACES_SET : | 
| 195 |                                                                 return 21; | 
| 196 |                                                         case IDelta.FINAL_TO_NON_FINAL : | 
| 197 |                                                                 return 22; | 
| 198 |                                                         case IDelta.INCREASE_ACCESS : | 
| 199 |                                                                 return 23; | 
| 200 |                                                         case IDelta.NON_FINAL_TO_FINAL : | 
| 201 |                                                                 return 94; | 
| 202 |                                                         case IDelta.DECREASE_ACCESS : | 
| 203 |                                                                 return 101; | 
| 204 |                                                         case IDelta.NON_ABSTRACT_TO_ABSTRACT : | 
| 205 |                                                                 return 105; | 
| 206 |                                                 } | 
| 207 |                                                 break; | 
| 208 |                                         case IDelta.REMOVED : | 
| 209 |                                                 switch(delta.getFlags()) { | 
| 210 |                                                         case IDelta.DEPRECATION : | 
| 211 |                                                                 return 111; | 
| 212 |                                                         case IDelta.CLINIT : | 
| 213 |                                                                 return 25; | 
| 214 |                                                         case IDelta.CONSTRUCTOR : | 
| 215 |                                                         case IDelta.API_CONSTRUCTOR : | 
| 216 |                                                                 return 26; | 
| 217 |                                                         case IDelta.FIELD_MOVED_UP : | 
| 218 |                                                                 return 27; | 
| 219 |                                                         case IDelta.FIELD : | 
| 220 |                                                         case IDelta.API_FIELD : | 
| 221 |                                                                 if (Flags.isProtected(delta.getOldModifiers())) { | 
| 222 |                                                                         return 28; | 
| 223 |                                                                 } | 
| 224 |                                                                 return 29; | 
| 225 |                                                         case IDelta.METHOD_MOVED_UP : | 
| 226 |                                                                 return 30; | 
| 227 |                                                         case IDelta.METHOD : | 
| 228 |                                                         case IDelta.API_METHOD : | 
| 229 |                                                                 if (Flags.isProtected(delta.getOldModifiers())) { | 
| 230 |                                                                         return 31; | 
| 231 |                                                                 } | 
| 232 |                                                                 return 32; | 
| 233 |                                                         case IDelta.TYPE_MEMBER : | 
| 234 |                                                                 if (Flags.isProtected(delta.getOldModifiers())) { | 
| 235 |                                                                         return 33; | 
| 236 |                                                                 } | 
| 237 |                                                                 return 34; | 
| 238 |                                                 } | 
| 239 |                                                 break; | 
| 240 |                                 } | 
| 241 |                                 break; | 
| 242 |                         case IDelta.ENUM_ELEMENT_TYPE : | 
| 243 |                                 switch(delta.getKind()) { | 
| 244 |                                         case IDelta.ADDED : | 
| 245 |                                                 switch(delta.getFlags()) { | 
| 246 |                                                         case IDelta.CONSTRUCTOR : | 
| 247 |                                                                 return 35; | 
| 248 |                                                         case IDelta.ENUM_CONSTANT : | 
| 249 |                                                                 return 36; | 
| 250 |                                                         case IDelta.METHOD : | 
| 251 |                                                                 return 37; | 
| 252 |                                                         case IDelta.DEPRECATION : | 
| 253 |                                                                 return 110; | 
| 254 |                                                 } | 
| 255 |                                                 break; | 
| 256 |                                         case IDelta.REMOVED : | 
| 257 |                                                 switch(delta.getFlags()) { | 
| 258 |                                                         case IDelta.CONSTRUCTOR : | 
| 259 |                                                         case IDelta.API_CONSTRUCTOR : | 
| 260 |                                                                 return 38; | 
| 261 |                                                         case IDelta.DEPRECATION : | 
| 262 |                                                                 return 111; | 
| 263 |                                                 } | 
| 264 |                                                 break; | 
| 265 |                                         case IDelta.CHANGED : | 
| 266 |                                                 switch(delta.getFlags()) { | 
| 267 |                                                         case IDelta.DECREASE_ACCESS : | 
| 268 |                                                                 return 101; | 
| 269 |                                                 } | 
| 270 |                                 } | 
| 271 |                                 break; | 
| 272 |                         case IDelta.FIELD_ELEMENT_TYPE : | 
| 273 |                                 switch(delta.getKind()) { | 
| 274 |                                         case IDelta.ADDED : | 
| 275 |                                                 switch(delta.getFlags()) { | 
| 276 |                                                         case IDelta.TYPE_ARGUMENTS : | 
| 277 |                                                                 return 18; | 
| 278 |                                                         case IDelta.VALUE : | 
| 279 |                                                                 return 40; | 
| 280 |                                                         case IDelta.DEPRECATION : | 
| 281 |                                                                 return 110; | 
| 282 |                                                 } | 
| 283 |                                                 break; | 
| 284 |                                         case IDelta.CHANGED : | 
| 285 |                                                 switch(delta.getFlags()) { | 
| 286 |                                                         case IDelta.FINAL_TO_NON_FINAL_NON_STATIC : | 
| 287 |                                                                 return 41; | 
| 288 |                                                         case IDelta.FINAL_TO_NON_FINAL_STATIC_CONSTANT : | 
| 289 |                                                                 if (Flags.isProtected(delta.getNewModifiers())) { | 
| 290 |                                                                         return 42; | 
| 291 |                                                                 } | 
| 292 |                                                                 return 43; | 
| 293 |                                                         case IDelta.FINAL_TO_NON_FINAL_STATIC_NON_CONSTANT : | 
| 294 |                                                                 return 44; | 
| 295 |                                                         case IDelta.INCREASE_ACCESS : | 
| 296 |                                                                 return 45; | 
| 297 |                                                         case IDelta.NON_FINAL_TO_FINAL : | 
| 298 |                                                                 return 46; | 
| 299 |                                                         case IDelta.NON_TRANSIENT_TO_TRANSIENT : | 
| 300 |                                                                 return 47; | 
| 301 |                                                         case IDelta.TRANSIENT_TO_NON_TRANSIENT : | 
| 302 |                                                                 return 48; | 
| 303 |                                                         case IDelta.VALUE : | 
| 304 |                                                                 if (Flags.isProtected(delta.getNewModifiers())) { | 
| 305 |                                                                         return 50; | 
| 306 |                                                                 } | 
| 307 |                                                                 return 51; | 
| 308 |                                                         case IDelta.TYPE : | 
| 309 |                                                                 return 78; | 
| 310 |                                                         case IDelta.NON_VOLATILE_TO_VOLATILE : | 
| 311 |                                                                 return 92; | 
| 312 |                                                         case IDelta.VOLATILE_TO_NON_VOLATILE : | 
| 313 |                                                                 return 93; | 
| 314 |                                                         case IDelta.DECREASE_ACCESS : | 
| 315 |                                                                 return 98; | 
| 316 |                                                         case IDelta.NON_STATIC_TO_STATIC : | 
| 317 |                                                                 return 103; | 
| 318 |                                                         case IDelta.STATIC_TO_NON_STATIC : | 
| 319 |                                                                 return 104; | 
| 320 |                                                         } | 
| 321 |                                                 break; | 
| 322 |                                         case IDelta.REMOVED : | 
| 323 |                                                 switch(delta.getFlags()) { | 
| 324 |                                                         case IDelta.VALUE : | 
| 325 |                                                                 if (Flags.isProtected(delta.getNewModifiers())) { | 
| 326 |                                                                         return 52; | 
| 327 |                                                                 } | 
| 328 |                                                                 return 53; | 
| 329 |                                                         case IDelta.DEPRECATION : | 
| 330 |                                                                 return 111; | 
| 331 |                                                 } | 
| 332 |                                 } | 
| 333 |                                 break; | 
| 334 |                         case IDelta.TYPE_PARAMETER_ELEMENT_TYPE : | 
| 335 |                                 if (delta.getKind() == IDelta.CHANGED && delta.getFlags() == IDelta.TYPE_PARAMETER_NAME) { | 
| 336 |                                         return 24; | 
| 337 |                                 } | 
| 338 |                                 break; | 
| 339 |                         case IDelta.INTERFACE_ELEMENT_TYPE : | 
| 340 |                                 switch(delta.getKind()) { | 
| 341 |                                         case IDelta.ADDED : | 
| 342 |                                                 switch(delta.getFlags()) { | 
| 343 |                                                         case IDelta.DEPRECATION : | 
| 344 |                                                                 return 110; | 
| 345 |                                                         case IDelta.FIELD : | 
| 346 |                                                                 return 54; | 
| 347 |                                                         case IDelta.METHOD : | 
| 348 |                                                                 return 55; | 
| 349 |                                                         case IDelta.TYPE_MEMBER : | 
| 350 |                                                                 return 56; | 
| 351 |                                                         case IDelta.OVERRIDEN_METHOD : | 
| 352 |                                                                 return 57; | 
| 353 |                                                         case IDelta.TYPE_PARAMETERS : | 
| 354 |                                                                 return 58; | 
| 355 |                                                         case IDelta.METHOD_MOVED_DOWN : | 
| 356 |                                                                 return 97; | 
| 357 |                                                         case IDelta.SUPER_INTERFACE_WITH_METHODS : | 
| 358 |                                                                 return 107; | 
| 359 |                                                 } | 
| 360 |                                                 break; | 
| 361 |                                         case IDelta.CHANGED : | 
| 362 |                                                 switch(delta.getFlags()) { | 
| 363 |                                                         case IDelta.EXPANDED_SUPERINTERFACES_SET : | 
| 364 |                                                                 return 79; | 
| 365 |                                                         case IDelta.DECREASE_ACCESS : | 
| 366 |                                                                 return 101; | 
| 367 |                                                 } | 
| 368 |                                                 break; | 
| 369 |                                         case IDelta.REMOVED : | 
| 370 |                                                 switch(delta.getFlags()) { | 
| 371 |                                                         case IDelta.FIELD_MOVED_UP : | 
| 372 |                                                                 return 60; | 
| 373 |                                                         case IDelta.METHOD_MOVED_UP : | 
| 374 |                                                                 return 61; | 
| 375 |                                                         case IDelta.DEPRECATION : | 
| 376 |                                                                 return 111; | 
| 377 |                                                 } | 
| 378 |                                 } | 
| 379 |                                 break; | 
| 380 |                         case IDelta.METHOD_ELEMENT_TYPE : | 
| 381 |                                 switch(delta.getKind()) { | 
| 382 |                                         case IDelta.ADDED : | 
| 383 |                                                 switch(delta.getFlags()) { | 
| 384 |                                                         case IDelta.DEPRECATION : | 
| 385 |                                                                 return 110; | 
| 386 |                                                         case IDelta.ANNOTATION_DEFAULT_VALUE : | 
| 387 |                                                                 return 62; | 
| 388 |                                                         case IDelta.CHECKED_EXCEPTION : | 
| 389 |                                                                 return 63; | 
| 390 |                                                         case IDelta.TYPE_PARAMETERS : | 
| 391 |                                                                 return 64; | 
| 392 |                                                         case IDelta.UNCHECKED_EXCEPTION : | 
| 393 |                                                                 return 65; | 
| 394 |                                                         case IDelta.TYPE_ARGUMENTS : | 
| 395 |                                                                 return 18; | 
| 396 |                                                         case IDelta.RESTRICTIONS : | 
| 397 |                                                                 return 106; | 
| 398 |                                                 } | 
| 399 |                                                 break; | 
| 400 |                                         case IDelta.CHANGED : | 
| 401 |                                                 switch(delta.getFlags()) { | 
| 402 |                                                         case IDelta.ABSTRACT_TO_NON_ABSTRACT : | 
| 403 |                                                                 return 66; | 
| 404 |                                                         case IDelta.ANNOTATION_DEFAULT_VALUE : | 
| 405 |                                                                 return 67; | 
| 406 |                                                         case IDelta.ARRAY_TO_VARARGS : | 
| 407 |                                                                 return 68; | 
| 408 |                                                         case IDelta.FINAL_TO_NON_FINAL : | 
| 409 |                                                                 return 69; | 
| 410 |                                                         case IDelta.INCREASE_ACCESS : | 
| 411 |                                                                 return 70; | 
| 412 |                                                         case IDelta.NATIVE_TO_NON_NATIVE : | 
| 413 |                                                                 return 71; | 
| 414 |                                                         case IDelta.NON_NATIVE_TO_NATIVE : | 
| 415 |                                                                 return 72; | 
| 416 |                                                         case IDelta.NON_SYNCHRONIZED_TO_SYNCHRONIZED : | 
| 417 |                                                                 return 73; | 
| 418 |                                                         case IDelta.SYNCHRONIZED_TO_NON_SYNCHRONIZED : | 
| 419 |                                                                 return 74; | 
| 420 |                                                         case IDelta.NON_FINAL_TO_FINAL : | 
| 421 |                                                                 if (RestrictionModifiers.isExtendRestriction(delta.getRestrictions())) { | 
| 422 |                                                                         return 81; | 
| 423 |                                                                 } | 
| 424 |                                                                 if (RestrictionModifiers.isOverrideRestriction(delta.getRestrictions())) { | 
| 425 |                                                                         return 82; | 
| 426 |                                                                 } | 
| 427 |                                                                 return 83; | 
| 428 |                                                         case IDelta.NON_STATIC_TO_STATIC : | 
| 429 |                                                                 return 84; | 
| 430 |                                                         case IDelta.DECREASE_ACCESS : | 
| 431 |                                                                 return 99; | 
| 432 |                                                         case IDelta.STATIC_TO_NON_STATIC : | 
| 433 |                                                                 return 102; | 
| 434 |                                                 } | 
| 435 |                                                 break; | 
| 436 |                                         case IDelta.REMOVED : | 
| 437 |                                                 switch(delta.getFlags()) { | 
| 438 |                                                         case IDelta.CHECKED_EXCEPTION : | 
| 439 |                                                                 return 76; | 
| 440 |                                                         case IDelta.UNCHECKED_EXCEPTION : | 
| 441 |                                                                 return 77; | 
| 442 |                                                         case IDelta.DEPRECATION : | 
| 443 |                                                                 return 111; | 
| 444 |                                                 } | 
| 445 |                                         } | 
| 446 |                                 break; | 
| 447 |                         case IDelta.CONSTRUCTOR_ELEMENT_TYPE : | 
| 448 |                                 switch(delta.getKind()) { | 
| 449 |                                         case IDelta.ADDED : | 
| 450 |                                                 switch(delta.getFlags()) { | 
| 451 |                                                         case IDelta.DEPRECATION : | 
| 452 |                                                                 return 110; | 
| 453 |                                                         case IDelta.CHECKED_EXCEPTION : | 
| 454 |                                                                 return 85; | 
| 455 |                                                         case IDelta.TYPE_PARAMETERS : | 
| 456 |                                                                 return 64; | 
| 457 |                                                         case IDelta.UNCHECKED_EXCEPTION : | 
| 458 |                                                                 return 86; | 
| 459 |                                                         case IDelta.TYPE_ARGUMENTS : | 
| 460 |                                                                 return 18; | 
| 461 |                                                 } | 
| 462 |                                                 break; | 
| 463 |                                         case IDelta.CHANGED : | 
| 464 |                                                 switch(delta.getFlags()) { | 
| 465 |                                                         case IDelta.ARRAY_TO_VARARGS : | 
| 466 |                                                                 return 87; | 
| 467 |                                                         case IDelta.INCREASE_ACCESS : | 
| 468 |                                                                 return 89; | 
| 469 |                                                         case IDelta.DECREASE_ACCESS : | 
| 470 |                                                                 return 100; | 
| 471 |                                                 } | 
| 472 |                                                 break; | 
| 473 |                                         case IDelta.REMOVED : | 
| 474 |                                                 switch(delta.getFlags()) { | 
| 475 |                                                         case IDelta.CHECKED_EXCEPTION : | 
| 476 |                                                                 return 90; | 
| 477 |                                                         case IDelta.UNCHECKED_EXCEPTION : | 
| 478 |                                                                 return 91; | 
| 479 |                                                         case IDelta.DEPRECATION : | 
| 480 |                                                                 return 111; | 
| 481 |                                                 } | 
| 482 |                                         } | 
| 483 |                                 break; | 
| 484 |                 } | 
| 485 |                 return 0; | 
| 486 |         } | 
| 487 | } |