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

Enum JavaVersion

output/java_guava/1.4.18/Types.java:556–649  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 1

captureMethod · 0.45

Tested by

no test coverage detected