public static String getSuperclassString(TypeElement element) { if (Compiler.ECJ.isPresent()) { if (element instanceof TypeElementImpl) { TypeElementImpl elementImpl = ((TypeElementImpl) element); if (elementImpl._binding instanceof SourceTypeBinding) { return EclipseSourceExtractor.extractSuperclass((SourceTypeBinding) elementImpl._binding).toString(); } } } return element.getSuperclass().toString(); } }
private static OrderingProvider createProvider() { if (Compiler.ECJ.isPresent()) { return new EclipseCompilerOrderingProvider(); } return DEFAULT_PROVIDER; }
private static SourceExtractor createExtractor() { if (Compiler.ECJ.isPresent() || Compiler.JAVAC.isPresent()) { List<SourceExtractor> extractors = Lists.newArrayListWithCapacity(2); if (Compiler.ECJ.isPresent()) { extractors.add(new EclipseSourceExtractor()); } if (Compiler.JAVAC.isPresent()) { extractors.add(new JavacSourceExtractor()); } if (extractors.size() == 1) { return extractors.get(0); } return new CompositeExtractor(extractors); } return DefaultExtractor.INSTANCE; }
private void printValue(AnnotationValue value) { // doing string comparison here because this class may not be available in Javac JDK7 if (Compiler.JAVAC.isPresent() && "com.sun.tools.javac.code.Attribute.UnresolvedClass".equals(value.getClass().getCanonicalName())) { Attribute.UnresolvedClass unresolved = ((Attribute.UnresolvedClass) value); String typeString = unresolved.classType.tsym.name.toString(); builder.append(unresovedImportsResolver.apply(typeString)).append(".class"); } else { visitValue(value); } }