MCPcopy Create free account
hub / github.com/antlr/codebuff / JavaVersion

Enum JavaVersion

output/java_guava/1.4.19/Types.java:555–648  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

553 // TODO(benyu): Once we are on Java 8, delete this abstraction
554
555 enum JavaVersion {
556 JAVA6 {
557 @Override
558 GenericArrayType newArrayType(Type componentType) {
559 return new GenericArrayTypeImpl(componentType);
560 }
561
562 @Override
563 Type usedInGenericType(Type type) {
564 checkNotNull(type);
565 if (type instanceof Class) {
566 Class<?> cls = (Class<?>) type;
567 if (cls.isArray()) {
568 return new GenericArrayTypeImpl(cls.getComponentType());
569 }
570 }
571 return type;
572 }
573 },
574
575 JAVA7 {
576 @Override
577 Type newArrayType(Type componentType) {
578 if (componentType instanceof Class) {
579 return getArrayClass((Class<?>) componentType);
580 } else {
581 return new GenericArrayTypeImpl(componentType);
582 }
583 }
584
585 @Override
586 Type usedInGenericType(Type type) {
587 return checkNotNull(type);
588 }
589 },
590
591 JAVA8 {
592 @Override
593 Type newArrayType(Type componentType) {
594 return JAVA7.newArrayType(componentType);
595 }
596
597 @Override
598 Type usedInGenericType(Type type) {
599 return JAVA7.usedInGenericType(type);
600 }
601
602 @Override
603 String typeName(Type type) {
604 try {
605 Method getTypeName = Type.class.getMethod("getTypeName");
606 return (String) getTypeName.invoke(type);
607 } catch (NoSuchMethodException e) {
608 throw new AssertionError("Type.getTypeName should be available in Java 8");
609 } catch (InvocationTargetException e) {
610 throw new RuntimeException(e);
611 } catch (IllegalAccessException e) {
612 throw new RuntimeException(e);

Callers

nothing calls this directly

Calls 1

captureMethod · 0.45

Tested by

no test coverage detected