List of usage examples for org.springframework.core.type ClassMetadata isInterface
boolean isInterface();
From source file:com.haulmont.cuba.core.config.AppPropertiesLocator.java
protected Set<Class> findConfigInterfaces() { if (interfacesCache == null) { synchronized (this) { if (interfacesCache == null) { log.trace("Locating config interfaces"); Set<String> cache = new HashSet<>(); for (String rootPackage : metadata.getRootPackages()) { String packagePrefix = rootPackage.replace(".", "/") + "/**/*.class"; String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + packagePrefix; Resource[] resources; try { resources = resourcePatternResolver.getResources(packageSearchPath); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader metadataReader = metadataReaderFactory .getMetadataReader(resource); ClassMetadata classMetadata = metadataReader.getClassMetadata(); if (classMetadata.isInterface()) { for (String intf : classMetadata.getInterfaceNames()) { if (Config.class.getName().equals(intf)) { cache.add(classMetadata.getClassName()); break; } }//from ww w .j a v a2 s . c o m } } } } catch (IOException e) { throw new RuntimeException("Error searching for Config interfaces", e); } } log.trace("Found config interfaces: {}", cache); interfacesCache = cache; } } } return interfacesCache.stream().map(ReflectionHelper::getClass).collect(Collectors.toSet()); }
From source file:org.libreplan.web.common.entrypoints.RedirectorSynthetiser.java
private void addIfSuitable(List<Class<?>> accumulatedResult, CachingMetadataReaderFactory metadataReaderFactory, Resource resource) {/* www . j a va2s.co m*/ try { if (resource.isReadable()) { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource); AnnotationMetadata annotationMetadata = metadataReader.getAnnotationMetadata(); ClassMetadata classMetadata = metadataReader.getClassMetadata(); if (classMetadata.isInterface() && annotationMetadata.getAnnotationTypes().contains(EntryPoints.class.getName())) { Class<?> klass = Class.forName(classMetadata.getClassName()); if (klass.isInterface()) { accumulatedResult.add(klass); } } } } catch (Exception e) { LOG.warn("exception processing " + resource, e); } }