private Set<String> useIntrospectedInterfacesForServices(TypeElement typeElement) { TypeHierarchyCollector typeHierarchyCollector = new TypeHierarchyCollector(); typeHierarchyCollector.collectFrom(typeElement.asType()); return typeHierarchyCollector.implementedInterfaceNames(); }
public void collectFrom(TypeMirror typeMirror) { if (typeMirror.getKind() == TypeKind.DECLARED) { collectHierarchyMirrors(typeMirror, typeMirror.toString()); } }
protected void introspectTypeMirror(TypeMirror typeMirror) { TypeHierarchyCollector collector = collectTypeHierarchy(typeMirror); this.extendedClassesNames = collector.extendedClassNames(); this.implementedInterfacesNames = collector.implementedInterfaceNames(); this.unresolvedYetArguments = collector.unresolvedYetArguments(); }
protected TypeHierarchyCollector collectTypeHierarchy(TypeMirror typeMirror) { TypeHierarchyCollector collector = new TypeHierarchyCollector(); collector.collectFrom(typeMirror); return collector; } }
private void collectHierarchyMirrors(TypeMirror typeMirror, String stringRepresentation) { if (typeMirror.getKind() != TypeKind.DECLARED || typeMirror.toString().equals(Object.class.getName())) { return; } DeclaredType declaredType = toDeclaredType(typeMirror); TypeElement e = toTypeElement(declaredType); TypevarContext context = new TypevarContext(e, stringRepresentation); collectInterfacesMirrors(declaredType, context); TypeMirror superclassMirror = e.getSuperclass(); if (superclassMirror.getKind() != TypeKind.NONE) { DeclaredType superclass = toDeclaredType(superclassMirror); String stringified = stringify(superclass, context); if (!stringified.equals(Object.class.getName())) { extendedClasses.add(toTypeElement(superclass)); extendedClassNames.add(stringified); collectHierarchyMirrors(superclass, stringified); } } for (TypeMirror m : e.getInterfaces()) { collectUnresolvedInterface(m, context); collectInterfacesMirrors(m, context); } }
private void collectInterfacesMirrors(TypeMirror typeMirror, TypevarContext context) { if (typeMirror.getKind() != TypeKind.DECLARED) { return; } DeclaredType declaredType = toDeclaredType(typeMirror); TypeElement e = toTypeElement(declaredType); if (e.getKind().isInterface()) { implementedInterfaces.add(e); String stringified = stringify(declaredType, context); TypevarContext nestedContext = new TypevarContext(e, stringified); implementedInterfaceNames.add(stringified); for (TypeMirror m : e.getInterfaces()) { collectInterfacesMirrors(m, nestedContext); } } }
@Override protected TypeHierarchyCollector collectTypeHierarchy(TypeMirror typeMirror) { TypeHierarchyCollector collector = containingType.createTypeHierarchyCollector(reporter, element); collector.collectFrom(typeMirror); return collector; } }.isOrdinalValue();
private void collectUnresolvedInterface(TypeMirror typeMirror, TypevarContext context) { if (typeMirror.getKind() == TypeKind.ERROR) { DeclaredType declaredType = toDeclaredType(typeMirror); String stringified = stringify(declaredType, context); implementedInterfaceNames.add(stringified); } }
ImmutableList<TypeElement> extendedClasses() { ensureTypeIntrospected(); return hierarchiCollector.extendedClasses(); }
ImmutableSet<TypeElement> implementedInterfaces() { ensureTypeIntrospected(); return hierarchiCollector.implementedInterfaces(); }
@Override protected TypeHierarchyCollector collectTypeHierarchy(final TypeMirror typeMirror) { this.hierarchiCollector = createTypeHierarchyCollector(report(), element); this.hierarchiCollector.collectFrom(typeMirror); return hierarchiCollector; }