@Override public String toString() { final StringBuilder buf = new StringBuilder(); buf.append('['); for (int i = 0, n = size(); i < n; i++) { if (i > 0) { buf.append(", "); } buf.append(get(i)); } buf.append(']'); return buf.toString(); } }
/** * Filter this {@link ClassInfoList} to include only standard classes (classes that are not interfaces or * annotations). * * @return The filtered list, containing only standard classes. */ public ClassInfoList getStandardClasses() { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (ci.isStandardClass()) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
/** * Filter this {@link ClassInfoList} to include only interfaces and annotations (annotations are interfaces, and * can be implemented). See also {@link #getInterfaces()}. * * @return The filtered list, containing only interfaces. */ public ClassInfoList getInterfacesAndAnnotations() { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (ci.isInterfaceOrAnnotation()) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
/** * Filter this {@link ClassInfoList} to include only annotations. * * @return The filtered list, containing only annotations. */ public ClassInfoList getAnnotations() { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (ci.isAnnotation()) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
/** * Filter this {@link ClassInfoList} to include only {@link Enum} classes. * * @return The filtered list, containing only enums. */ public ClassInfoList getEnums() { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (ci.isEnum()) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
/** * Filter this {@link ClassInfoList} to include only implemented interfaces, i.e. non-annotation interfaces, or * annotations that have been implemented by a class. * * @return The filtered list, containing only implemented interfaces. */ public ClassInfoList getImplementedInterfaces() { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (ci.isImplementedInterface()) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
/** * Filter this {@link ClassInfoList} to include only interfaces that are not annotations. See also * {@link #getInterfacesAndAnnotations()}. * * @return The filtered list, containing only interfaces. */ public ClassInfoList getInterfaces() { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (ci.isInterface()) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
/** * Find the subset of this {@link ClassInfoList} for which the given filter predicate is true. * * @param filter * The {@link ClassInfoFilter} to apply. * @return The subset of this {@link ClassInfoList} for which the given filter predicate is true. */ public ClassInfoList filter(final ClassInfoFilter filter) { final Set<ClassInfo> reachableClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedClassesFiltered = new LinkedHashSet<>(directlyRelatedClasses.size()); for (final ClassInfo ci : this) { if (filter.accept(ci)) { reachableClassesFiltered.add(ci); if (directlyRelatedClasses.contains(ci)) { directlyRelatedClassesFiltered.add(ci); } } } return new ClassInfoList(reachableClassesFiltered, directlyRelatedClassesFiltered, sortByName); }
final Set<ClassInfo> assignableFromClassesFiltered = new LinkedHashSet<>(size()); final Set<ClassInfo> directlyRelatedAssignableFromClassesFiltered = new LinkedHashSet<>( directlyRelatedClasses.size());
public ScanResult getScanResult() { if (scanResult == null) { TypeScriptGenerator.getLogger().info("Scanning classpath"); final Date scanStart = new Date(); ClassGraph classGraph = new ClassGraph().enableAllInfo(); if (classLoader != null) { classGraph = classGraph.overrideClasspath((Object[])classLoader.getURLs()); } if (verbose) { classGraph = classGraph.verbose(); } final ScanResult result = classGraph.scan(); final int count = result.getAllClasses().size(); final Date scanEnd = new Date(); final double timeInSeconds = (scanEnd.getTime() - scanStart.getTime()) / 1000.0; TypeScriptGenerator.getLogger().info(String.format("Scanning finished in %.2f seconds. Total number of classes: %d.", timeInSeconds, count)); scanResult = result; } return scanResult; }
scanResult.getClassesWithAnnotation(Entity.class.getName()); entities.addAll(scanResult.getClassesWithAnnotation(Embedded.class.getName())); logger.info("Found " + entities.size() + " entities in classpath"); for (String cn : entities.getNames()) { ClassInfo ci = scanResult.getClassInfo(cn);