@Deprecated private void execute1_0(final VFS vfs, final ResourceResolver resolver, final Resources resources, final List<ProcessorOptions> entries, final Task task) throws IOException { for (final ProcessorOptions entry : entries) { for (final Type type : Type.values()) { final List<Resource> res = resources.getByType(type); if (entry.processor.supportsType(type)) { LOGGER.info("Executing processor {} for type {}", entry.name, type); final List<Resource> results = new ArrayList<Resource>(); // TODO: SourceMerger should not be required here final ResourceGroup group = new ResourceGroup(res, new SourceMerger( GlobalOptions.isSourceOnce(task))); group.apply(vfs, entry.processor, entry.options); results.addAll(group.getResources()); resources.replace(res, results); } } } }
private Resource executeComplexMerge(final VFS vfs, final Resource resource, final Map<String, Object> options) throws IOException { final Object typeOption = options.get("type"); if (!(resource instanceof ResourceGroup) || typeOption != null && resource.getType() != Type.valueOf(typeOption.toString())) { return resource; } final ResourceGroup group = (ResourceGroup) resource; final Resource input = group.getResources().get(0); final VFile snapshot = vfs.stack(); try { final VFile target = vfs.find(input.getPath()); final Writer writer = VFSUtils.createWriter(target); try { writer.write(group.getMerger().merge(group.getResources())); } finally { IOUtils.closeQuietly(writer); } return input.getResolver().resolve(target.getPath()); } catch (final IOException e) { vfs.rollback(snapshot); throw e; } }
Resource input = null; if (resource instanceof ResourceGroup) { input = ((ResourceGroup) resource).getResources().get(0); } else { input = resource;
for (final Resource res : ((ResourceGroup) resource).getResources()) { errors.addAll(scanResource(res, options));