private void readResources(Element resourcesElement, ResourcesDef resDef) { XmlUtils.iterateSubElements( resourcesElement, element -> { XmlManifestResourceElement resourceElement = new XmlManifestResourceElement(element); Optional<ResourceReader> optional = resourcesReaders .stream() .filter(reader -> reader.accept(resourceElement)) .findFirst(); try { if (optional.isPresent()) resDef.addResource(optional.get().read(resourceElement, fileScope)); } catch (Exception e) { throw new JumbleException("Fail to load resource: " + element.getTagName(), e); } }); }