Lines 377-388
Link Here
|
377 |
|
377 |
|
378 |
public void computeId() { |
378 |
public void computeId() { |
379 |
// try to avoid multiple checks against a package/type name |
379 |
// try to avoid multiple checks against a package/type name |
|
|
380 |
outerSwitch: |
380 |
switch (this.compoundName.length) { |
381 |
switch (this.compoundName.length) { |
381 |
|
382 |
|
382 |
case 3 : |
383 |
case 3 : |
383 |
if (!CharOperation.equals(TypeConstants.JAVA, this.compoundName[0]) |
384 |
if (!CharOperation.equals(TypeConstants.JAVA, this.compoundName[0]) |
384 |
&& !CharOperation.equals(TypeConstants.JAVAX, this.compoundName[0])) |
385 |
&& !CharOperation.equals(TypeConstants.JAVAX, this.compoundName[0])) |
385 |
return; |
386 |
break outerSwitch; |
386 |
|
387 |
|
387 |
char[] packageName = this.compoundName[1]; |
388 |
char[] packageName = this.compoundName[1]; |
388 |
if (packageName.length == 0) return; // just to be safe |
389 |
if (packageName.length == 0) return; // just to be safe |
Lines 397-406
Link Here
|
397 |
this.id = TypeIds.T_JavaxAnnotationPostConstruct; |
398 |
this.id = TypeIds.T_JavaxAnnotationPostConstruct; |
398 |
if (CharOperation.equals(typeName, TypeConstants.JAVAX_ANNOTATION_PREDESTROY[2])) |
399 |
if (CharOperation.equals(typeName, TypeConstants.JAVAX_ANNOTATION_PREDESTROY[2])) |
399 |
this.id = TypeIds.T_JavaxAnnotationPreDestroy; |
400 |
this.id = TypeIds.T_JavaxAnnotationPreDestroy; |
400 |
return; |
401 |
break outerSwitch; |
401 |
} |
402 |
} |
402 |
} |
403 |
} |
403 |
return; |
404 |
break outerSwitch; |
404 |
} |
405 |
} |
405 |
if (!CharOperation.equals(TypeConstants.LANG, this.compoundName[1])) { |
406 |
if (!CharOperation.equals(TypeConstants.LANG, this.compoundName[1])) { |
406 |
switch (packageName[0]) { |
407 |
switch (packageName[0]) { |
Lines 410-455
Link Here
|
410 |
case 'C' : |
411 |
case 'C' : |
411 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_CLOSEABLE[2])) |
412 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_CLOSEABLE[2])) |
412 |
this.typeBits |= TypeIds.BitCloseable; // don't assign id, only typeBit (for analysis of resource leaks) |
413 |
this.typeBits |= TypeIds.BitCloseable; // don't assign id, only typeBit (for analysis of resource leaks) |
413 |
return; |
414 |
break outerSwitch; |
414 |
case 'E' : |
415 |
case 'E' : |
415 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_EXTERNALIZABLE[2])) |
416 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_EXTERNALIZABLE[2])) |
416 |
this.id = TypeIds.T_JavaIoExternalizable; |
417 |
this.id = TypeIds.T_JavaIoExternalizable; |
417 |
return; |
418 |
break outerSwitch; |
418 |
case 'I' : |
419 |
case 'I' : |
419 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_IOEXCEPTION[2])) |
420 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_IOEXCEPTION[2])) |
420 |
this.id = TypeIds.T_JavaIoException; |
421 |
this.id = TypeIds.T_JavaIoException; |
421 |
return; |
422 |
break outerSwitch; |
422 |
case 'O' : |
423 |
case 'O' : |
423 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_OBJECTSTREAMEXCEPTION[2])) |
424 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_OBJECTSTREAMEXCEPTION[2])) |
424 |
this.id = TypeIds.T_JavaIoObjectStreamException; |
425 |
this.id = TypeIds.T_JavaIoObjectStreamException; |
425 |
return; |
426 |
break outerSwitch; |
426 |
case 'P' : |
427 |
case 'P' : |
427 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_PRINTSTREAM[2])) |
428 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_PRINTSTREAM[2])) |
428 |
this.id = TypeIds.T_JavaIoPrintStream; |
429 |
this.id = TypeIds.T_JavaIoPrintStream; |
429 |
return; |
430 |
break outerSwitch; |
430 |
case 'S' : |
431 |
case 'S' : |
431 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_SERIALIZABLE[2])) |
432 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_IO_SERIALIZABLE[2])) |
432 |
this.id = TypeIds.T_JavaIoSerializable; |
433 |
this.id = TypeIds.T_JavaIoSerializable; |
433 |
return; |
434 |
break outerSwitch; |
434 |
} |
435 |
} |
435 |
} |
436 |
} |
436 |
return; |
437 |
break outerSwitch; |
437 |
case 'u' : |
438 |
case 'u' : |
438 |
if (CharOperation.equals(packageName, TypeConstants.UTIL)) { |
439 |
if (CharOperation.equals(packageName, TypeConstants.UTIL)) { |
439 |
switch (typeName[0]) { |
440 |
switch (typeName[0]) { |
440 |
case 'C' : |
441 |
case 'C' : |
441 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_UTIL_COLLECTION[2])) |
442 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_UTIL_COLLECTION[2])) |
442 |
this.id = TypeIds.T_JavaUtilCollection; |
443 |
this.id = TypeIds.T_JavaUtilCollection; |
443 |
return; |
444 |
break outerSwitch; |
444 |
case 'I' : |
445 |
case 'I' : |
445 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_UTIL_ITERATOR[2])) |
446 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_UTIL_ITERATOR[2])) |
446 |
this.id = TypeIds.T_JavaUtilIterator; |
447 |
this.id = TypeIds.T_JavaUtilIterator; |
447 |
return; |
448 |
break outerSwitch; |
448 |
} |
449 |
} |
449 |
} |
450 |
} |
450 |
return; |
451 |
break outerSwitch; |
451 |
} |
452 |
} |
452 |
return; |
453 |
break outerSwitch; |
453 |
} |
454 |
} |
454 |
|
455 |
|
455 |
// remaining types MUST be in java.lang.* |
456 |
// remaining types MUST be in java.lang.* |
Lines 461-571
Link Here
|
461 |
this.id = TypeIds.T_JavaLangAutoCloseable; |
462 |
this.id = TypeIds.T_JavaLangAutoCloseable; |
462 |
this.typeBits |= TypeIds.BitAutoCloseable; |
463 |
this.typeBits |= TypeIds.BitAutoCloseable; |
463 |
} |
464 |
} |
464 |
return; |
465 |
break outerSwitch; |
465 |
case 14: |
466 |
case 14: |
466 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ASSERTIONERROR[2])) |
467 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ASSERTIONERROR[2])) |
467 |
this.id = TypeIds.T_JavaLangAssertionError; |
468 |
this.id = TypeIds.T_JavaLangAssertionError; |
468 |
return; |
469 |
break outerSwitch; |
469 |
} |
470 |
} |
470 |
return; |
471 |
break outerSwitch; |
471 |
case 'B' : |
472 |
case 'B' : |
472 |
switch (typeName.length) { |
473 |
switch (typeName.length) { |
473 |
case 4 : |
474 |
case 4 : |
474 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_BYTE[2])) |
475 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_BYTE[2])) |
475 |
this.id = TypeIds.T_JavaLangByte; |
476 |
this.id = TypeIds.T_JavaLangByte; |
476 |
return; |
477 |
break outerSwitch; |
477 |
case 7 : |
478 |
case 7 : |
478 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_BOOLEAN[2])) |
479 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_BOOLEAN[2])) |
479 |
this.id = TypeIds.T_JavaLangBoolean; |
480 |
this.id = TypeIds.T_JavaLangBoolean; |
480 |
return; |
481 |
break outerSwitch; |
481 |
} |
482 |
} |
482 |
return; |
483 |
break outerSwitch; |
483 |
case 'C' : |
484 |
case 'C' : |
484 |
switch (typeName.length) { |
485 |
switch (typeName.length) { |
485 |
case 5 : |
486 |
case 5 : |
486 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CLASS[2])) |
487 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CLASS[2])) |
487 |
this.id = TypeIds.T_JavaLangClass; |
488 |
this.id = TypeIds.T_JavaLangClass; |
488 |
return; |
489 |
break outerSwitch; |
489 |
case 9 : |
490 |
case 9 : |
490 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CHARACTER[2])) |
491 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CHARACTER[2])) |
491 |
this.id = TypeIds.T_JavaLangCharacter; |
492 |
this.id = TypeIds.T_JavaLangCharacter; |
492 |
else if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CLONEABLE[2])) |
493 |
else if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CLONEABLE[2])) |
493 |
this.id = TypeIds.T_JavaLangCloneable; |
494 |
this.id = TypeIds.T_JavaLangCloneable; |
494 |
return; |
495 |
break outerSwitch; |
495 |
case 22 : |
496 |
case 22 : |
496 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CLASSNOTFOUNDEXCEPTION[2])) |
497 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_CLASSNOTFOUNDEXCEPTION[2])) |
497 |
this.id = TypeIds.T_JavaLangClassNotFoundException; |
498 |
this.id = TypeIds.T_JavaLangClassNotFoundException; |
498 |
return; |
499 |
break outerSwitch; |
499 |
} |
500 |
} |
500 |
return; |
501 |
break outerSwitch; |
501 |
case 'D' : |
502 |
case 'D' : |
502 |
switch (typeName.length) { |
503 |
switch (typeName.length) { |
503 |
case 6 : |
504 |
case 6 : |
504 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_DOUBLE[2])) |
505 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_DOUBLE[2])) |
505 |
this.id = TypeIds.T_JavaLangDouble; |
506 |
this.id = TypeIds.T_JavaLangDouble; |
506 |
return; |
507 |
break outerSwitch; |
507 |
case 10 : |
508 |
case 10 : |
508 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_DEPRECATED[2])) |
509 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_DEPRECATED[2])) |
509 |
this.id = TypeIds.T_JavaLangDeprecated; |
510 |
this.id = TypeIds.T_JavaLangDeprecated; |
510 |
return; |
511 |
break outerSwitch; |
511 |
} |
512 |
} |
512 |
return; |
513 |
break outerSwitch; |
513 |
case 'E' : |
514 |
case 'E' : |
514 |
switch (typeName.length) { |
515 |
switch (typeName.length) { |
515 |
case 4 : |
516 |
case 4 : |
516 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ENUM[2])) |
517 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ENUM[2])) |
517 |
this.id = TypeIds.T_JavaLangEnum; |
518 |
this.id = TypeIds.T_JavaLangEnum; |
518 |
return; |
519 |
break outerSwitch; |
519 |
case 5 : |
520 |
case 5 : |
520 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ERROR[2])) |
521 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ERROR[2])) |
521 |
this.id = TypeIds.T_JavaLangError; |
522 |
this.id = TypeIds.T_JavaLangError; |
522 |
return; |
523 |
break outerSwitch; |
523 |
case 9 : |
524 |
case 9 : |
524 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_EXCEPTION[2])) |
525 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_EXCEPTION[2])) |
525 |
this.id = TypeIds.T_JavaLangException; |
526 |
this.id = TypeIds.T_JavaLangException; |
526 |
return; |
527 |
break outerSwitch; |
527 |
} |
528 |
} |
528 |
return; |
529 |
break outerSwitch; |
529 |
case 'F' : |
530 |
case 'F' : |
530 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_FLOAT[2])) |
531 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_FLOAT[2])) |
531 |
this.id = TypeIds.T_JavaLangFloat; |
532 |
this.id = TypeIds.T_JavaLangFloat; |
532 |
return; |
533 |
break outerSwitch; |
533 |
case 'I' : |
534 |
case 'I' : |
534 |
switch (typeName.length) { |
535 |
switch (typeName.length) { |
535 |
case 7 : |
536 |
case 7 : |
536 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_INTEGER[2])) |
537 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_INTEGER[2])) |
537 |
this.id = TypeIds.T_JavaLangInteger; |
538 |
this.id = TypeIds.T_JavaLangInteger; |
538 |
return; |
539 |
break outerSwitch; |
539 |
case 8 : |
540 |
case 8 : |
540 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ITERABLE[2])) |
541 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ITERABLE[2])) |
541 |
this.id = TypeIds.T_JavaLangIterable; |
542 |
this.id = TypeIds.T_JavaLangIterable; |
542 |
return; |
543 |
break outerSwitch; |
543 |
case 24 : |
544 |
case 24 : |
544 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ILLEGALARGUMENTEXCEPTION[2])) |
545 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ILLEGALARGUMENTEXCEPTION[2])) |
545 |
this.id = TypeIds.T_JavaLangIllegalArgumentException; |
546 |
this.id = TypeIds.T_JavaLangIllegalArgumentException; |
546 |
return; |
547 |
break outerSwitch; |
547 |
} |
548 |
} |
548 |
return; |
549 |
break outerSwitch; |
549 |
case 'L' : |
550 |
case 'L' : |
550 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_LONG[2])) |
551 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_LONG[2])) |
551 |
this.id = TypeIds.T_JavaLangLong; |
552 |
this.id = TypeIds.T_JavaLangLong; |
552 |
return; |
553 |
break outerSwitch; |
553 |
case 'N' : |
554 |
case 'N' : |
554 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_NOCLASSDEFERROR[2])) |
555 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_NOCLASSDEFERROR[2])) |
555 |
this.id = TypeIds.T_JavaLangNoClassDefError; |
556 |
this.id = TypeIds.T_JavaLangNoClassDefError; |
556 |
return; |
557 |
break outerSwitch; |
557 |
case 'O' : |
558 |
case 'O' : |
558 |
switch (typeName.length) { |
559 |
switch (typeName.length) { |
559 |
case 6 : |
560 |
case 6 : |
560 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_OBJECT[2])) |
561 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_OBJECT[2])) |
561 |
this.id = TypeIds.T_JavaLangObject; |
562 |
this.id = TypeIds.T_JavaLangObject; |
562 |
return; |
563 |
break outerSwitch; |
563 |
case 8 : |
564 |
case 8 : |
564 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_OVERRIDE[2])) |
565 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_OVERRIDE[2])) |
565 |
this.id = TypeIds.T_JavaLangOverride; |
566 |
this.id = TypeIds.T_JavaLangOverride; |
566 |
return; |
567 |
break outerSwitch; |
567 |
} |
568 |
} |
568 |
return; |
569 |
break outerSwitch; |
569 |
case 'R' : |
570 |
case 'R' : |
570 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_RUNTIMEEXCEPTION[2])) |
571 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_RUNTIMEEXCEPTION[2])) |
571 |
this.id = TypeIds.T_JavaLangRuntimeException; |
572 |
this.id = TypeIds.T_JavaLangRuntimeException; |
Lines 575-619
Link Here
|
575 |
case 5 : |
576 |
case 5 : |
576 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SHORT[2])) |
577 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SHORT[2])) |
577 |
this.id = TypeIds.T_JavaLangShort; |
578 |
this.id = TypeIds.T_JavaLangShort; |
578 |
return; |
579 |
break outerSwitch; |
579 |
case 6 : |
580 |
case 6 : |
580 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_STRING[2])) |
581 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_STRING[2])) |
581 |
this.id = TypeIds.T_JavaLangString; |
582 |
this.id = TypeIds.T_JavaLangString; |
582 |
else if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SYSTEM[2])) |
583 |
else if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SYSTEM[2])) |
583 |
this.id = TypeIds.T_JavaLangSystem; |
584 |
this.id = TypeIds.T_JavaLangSystem; |
584 |
return; |
585 |
break outerSwitch; |
585 |
case 11 : |
586 |
case 11 : |
586 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SAFEVARARGS[2])) |
587 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SAFEVARARGS[2])) |
587 |
this.id = TypeIds.T_JavaLangSafeVarargs; |
588 |
this.id = TypeIds.T_JavaLangSafeVarargs; |
588 |
return; |
589 |
break outerSwitch; |
589 |
case 12 : |
590 |
case 12 : |
590 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_STRINGBUFFER[2])) |
591 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_STRINGBUFFER[2])) |
591 |
this.id = TypeIds.T_JavaLangStringBuffer; |
592 |
this.id = TypeIds.T_JavaLangStringBuffer; |
592 |
return; |
593 |
break outerSwitch; |
593 |
case 13 : |
594 |
case 13 : |
594 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_STRINGBUILDER[2])) |
595 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_STRINGBUILDER[2])) |
595 |
this.id = TypeIds.T_JavaLangStringBuilder; |
596 |
this.id = TypeIds.T_JavaLangStringBuilder; |
596 |
return; |
597 |
break outerSwitch; |
597 |
case 16 : |
598 |
case 16 : |
598 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SUPPRESSWARNINGS[2])) |
599 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_SUPPRESSWARNINGS[2])) |
599 |
this.id = TypeIds.T_JavaLangSuppressWarnings; |
600 |
this.id = TypeIds.T_JavaLangSuppressWarnings; |
600 |
return; |
601 |
break outerSwitch; |
601 |
} |
602 |
} |
602 |
return; |
603 |
break outerSwitch; |
603 |
case 'T' : |
604 |
case 'T' : |
604 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_THROWABLE[2])) |
605 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_THROWABLE[2])) |
605 |
this.id = TypeIds.T_JavaLangThrowable; |
606 |
this.id = TypeIds.T_JavaLangThrowable; |
606 |
return; |
607 |
break outerSwitch; |
607 |
case 'V' : |
608 |
case 'V' : |
608 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_VOID[2])) |
609 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_VOID[2])) |
609 |
this.id = TypeIds.T_JavaLangVoid; |
610 |
this.id = TypeIds.T_JavaLangVoid; |
610 |
return; |
611 |
break outerSwitch; |
611 |
} |
612 |
} |
612 |
break; |
613 |
break; |
613 |
|
614 |
|
614 |
case 4: |
615 |
case 4: |
615 |
if (!CharOperation.equals(TypeConstants.JAVA, this.compoundName[0])) |
616 |
if (!CharOperation.equals(TypeConstants.JAVA, this.compoundName[0])) |
616 |
return; |
617 |
break outerSwitch; |
617 |
packageName = this.compoundName[1]; |
618 |
packageName = this.compoundName[1]; |
618 |
if (packageName.length == 0) return; // just to be safe |
619 |
if (packageName.length == 0) return; // just to be safe |
619 |
|
620 |
|
Lines 628-665
Link Here
|
628 |
case 'A' : |
629 |
case 'A' : |
629 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_ANNOTATION[3])) |
630 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_ANNOTATION[3])) |
630 |
this.id = TypeIds.T_JavaLangAnnotationAnnotation; |
631 |
this.id = TypeIds.T_JavaLangAnnotationAnnotation; |
631 |
return; |
632 |
break outerSwitch; |
632 |
case 'D' : |
633 |
case 'D' : |
633 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_DOCUMENTED[3])) |
634 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_DOCUMENTED[3])) |
634 |
this.id = TypeIds.T_JavaLangAnnotationDocumented; |
635 |
this.id = TypeIds.T_JavaLangAnnotationDocumented; |
635 |
return; |
636 |
break outerSwitch; |
636 |
case 'E' : |
637 |
case 'E' : |
637 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_ELEMENTTYPE[3])) |
638 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_ELEMENTTYPE[3])) |
638 |
this.id = TypeIds.T_JavaLangAnnotationElementType; |
639 |
this.id = TypeIds.T_JavaLangAnnotationElementType; |
639 |
return; |
640 |
break outerSwitch; |
640 |
case 'I' : |
641 |
case 'I' : |
641 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_INHERITED[3])) |
642 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_INHERITED[3])) |
642 |
this.id = TypeIds.T_JavaLangAnnotationInherited; |
643 |
this.id = TypeIds.T_JavaLangAnnotationInherited; |
643 |
return; |
644 |
break outerSwitch; |
644 |
case 'R' : |
645 |
case 'R' : |
645 |
switch (typeName.length) { |
646 |
switch (typeName.length) { |
646 |
case 9 : |
647 |
case 9 : |
647 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_RETENTION[3])) |
648 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_RETENTION[3])) |
648 |
this.id = TypeIds.T_JavaLangAnnotationRetention; |
649 |
this.id = TypeIds.T_JavaLangAnnotationRetention; |
649 |
return; |
650 |
break outerSwitch; |
650 |
case 15 : |
651 |
case 15 : |
651 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_RETENTIONPOLICY[3])) |
652 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_RETENTIONPOLICY[3])) |
652 |
this.id = TypeIds.T_JavaLangAnnotationRetentionPolicy; |
653 |
this.id = TypeIds.T_JavaLangAnnotationRetentionPolicy; |
653 |
return; |
654 |
break outerSwitch; |
654 |
} |
655 |
} |
655 |
return; |
656 |
break outerSwitch; |
656 |
case 'T' : |
657 |
case 'T' : |
657 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_TARGET[3])) |
658 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_ANNOTATION_TARGET[3])) |
658 |
this.id = TypeIds.T_JavaLangAnnotationTarget; |
659 |
this.id = TypeIds.T_JavaLangAnnotationTarget; |
659 |
return; |
660 |
break outerSwitch; |
660 |
} |
661 |
} |
661 |
} |
662 |
} |
662 |
return; |
663 |
break outerSwitch; |
663 |
case 'i': |
664 |
case 'i': |
664 |
if (CharOperation.equals(packageName, TypeConstants.INVOKE)) { |
665 |
if (CharOperation.equals(packageName, TypeConstants.INVOKE)) { |
665 |
if (typeName.length == 0) return; // just to be safe |
666 |
if (typeName.length == 0) return; // just to be safe |
Lines 667-699
Link Here
|
667 |
case 'M' : |
668 |
case 'M' : |
668 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE[3])) |
669 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE[3])) |
669 |
this.id = TypeIds.T_JavaLangInvokeMethodHandlePolymorphicSignature; |
670 |
this.id = TypeIds.T_JavaLangInvokeMethodHandlePolymorphicSignature; |
670 |
return; |
671 |
break outerSwitch; |
671 |
} |
672 |
} |
672 |
} |
673 |
} |
673 |
return; |
674 |
break outerSwitch; |
674 |
case 'r' : |
675 |
case 'r' : |
675 |
if (CharOperation.equals(packageName, TypeConstants.REFLECT)) { |
676 |
if (CharOperation.equals(packageName, TypeConstants.REFLECT)) { |
676 |
switch (typeName[0]) { |
677 |
switch (typeName[0]) { |
677 |
case 'C' : |
678 |
case 'C' : |
678 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_REFLECT_CONSTRUCTOR[2])) |
679 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_REFLECT_CONSTRUCTOR[2])) |
679 |
this.id = TypeIds.T_JavaLangReflectConstructor; |
680 |
this.id = TypeIds.T_JavaLangReflectConstructor; |
680 |
return; |
681 |
break outerSwitch; |
681 |
case 'F' : |
682 |
case 'F' : |
682 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_REFLECT_FIELD[2])) |
683 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_REFLECT_FIELD[2])) |
683 |
this.id = TypeIds.T_JavaLangReflectField; |
684 |
this.id = TypeIds.T_JavaLangReflectField; |
684 |
return; |
685 |
break outerSwitch; |
685 |
case 'M' : |
686 |
case 'M' : |
686 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_REFLECT_METHOD[2])) |
687 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_REFLECT_METHOD[2])) |
687 |
this.id = TypeIds.T_JavaLangReflectMethod; |
688 |
this.id = TypeIds.T_JavaLangReflectMethod; |
688 |
return; |
689 |
break outerSwitch; |
689 |
} |
690 |
} |
690 |
} |
691 |
} |
691 |
return; |
692 |
break outerSwitch; |
692 |
} |
693 |
} |
693 |
break; |
694 |
break; |
694 |
case 5 : |
695 |
case 5 : |
695 |
if (!CharOperation.equals(TypeConstants.JAVA, this.compoundName[0])) |
696 |
if (!CharOperation.equals(TypeConstants.JAVA, this.compoundName[0])) |
696 |
return; |
697 |
break outerSwitch; |
697 |
packageName = this.compoundName[1]; |
698 |
packageName = this.compoundName[1]; |
698 |
if (packageName.length == 0) return; // just to be safe |
699 |
if (packageName.length == 0) return; // just to be safe |
699 |
|
700 |
|
Lines 712-725
Link Here
|
712 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE[3]) |
713 |
if (CharOperation.equals(typeName, TypeConstants.JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE[3]) |
713 |
&& CharOperation.equals(memberTypeName, TypeConstants.JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE[4])) |
714 |
&& CharOperation.equals(memberTypeName, TypeConstants.JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE[4])) |
714 |
this.id = TypeIds.T_JavaLangInvokeMethodHandlePolymorphicSignature; |
715 |
this.id = TypeIds.T_JavaLangInvokeMethodHandlePolymorphicSignature; |
715 |
return; |
716 |
break outerSwitch; |
716 |
} |
717 |
} |
717 |
} |
718 |
} |
718 |
return; |
719 |
break outerSwitch; |
719 |
} |
720 |
} |
720 |
return; |
721 |
break outerSwitch; |
721 |
} |
722 |
} |
722 |
} |
723 |
} |
|
|
724 |
if (this.fPackage != null) { |
725 |
LookupEnvironment env = this.fPackage.environment; |
726 |
if (env.globalOptions.isAnnotationBasedNullAnalysisEnabled) { |
727 |
if (isAnnotationType() || this instanceof UnresolvedReferenceBinding) {// unresolved types don't yet have the modifiers set |
728 |
// check if type is one of the configured null annotation types |
729 |
// if so mark as a well known type using the corresponding typeID: |
730 |
if (env.nullableAnnotationPackage == this.fPackage |
731 |
&& CharOperation.equals(this.compoundName, env.getNullableAnnotationName())) { |
732 |
this.id = TypeIds.T_ConfiguredAnnotationNullable; |
733 |
if (!(this instanceof UnresolvedReferenceBinding)) // unresolved will need to check back for the resolved type |
734 |
env.nullableAnnotationPackage = null; // don't check again |
735 |
} else if (env.nonnullAnnotationPackage == this.fPackage |
736 |
&& CharOperation.equals(this.compoundName, env.getNonNullAnnotationName())) { |
737 |
this.id = TypeIds.T_ConfiguredAnnotationNonNull; |
738 |
if (!(this instanceof UnresolvedReferenceBinding)) // unresolved will need to check back for the resolved type |
739 |
env.nonnullAnnotationPackage = null; // don't check again |
740 |
} else if (env.nonnullByDefaultAnnotationPackage == this.fPackage |
741 |
&& CharOperation.equals(this.compoundName, env.getNonNullByDefaultAnnotationName())) { |
742 |
this.id = TypeIds.T_ConfiguredAnnotationNonNullByDefault; |
743 |
if (!(this instanceof UnresolvedReferenceBinding)) // unresolved will need to check back for the resolved type |
744 |
env.nonnullByDefaultAnnotationPackage = null; // don't check again |
745 |
} |
746 |
} |
747 |
} |
748 |
} |
723 |
} |
749 |
} |
724 |
|
750 |
|
725 |
/** |
751 |
/** |