@Override public CachedType<TypeDescriptor> resolve(String fullQualifiedName, ScannerContext context) { CachedType<TypeDescriptor> cachedType = typeCache.get(fullQualifiedName); if (cachedType == null) { TypeDescriptor typeDescriptor = findInArtifact(fullQualifiedName, context); if (typeDescriptor == null) { typeDescriptor = findInDependencies(fullQualifiedName, context); } if (typeDescriptor == null) { String requiredFileName = "/" + fullQualifiedName.replace(".", "/") + ".class"; String containedFileName = getContainedFileName(requiredFileName); typeDescriptor = context.peek(FileResolver.class).require(requiredFileName, containedFileName, ClassFileDescriptor.class, context); setTypeProperties(typeDescriptor, fullQualifiedName); addRequiredType(fullQualifiedName, typeDescriptor); } cachedType = getCachedType(fullQualifiedName, typeDescriptor); } return cachedType; }