@SuppressWarnings("unchecked") public static <E extends Resource<?>, R extends Collection<E>, I extends Collection<Resource<?>>> R filterByType( final Class<E> type, final I list) { ResourceFilter filter = new ResourceFilter() { @Override public boolean accept(Resource<?> resource) { return type.isAssignableFrom(resource.getClass()); } }; return (R) filter(filter, list); }
@Override public List<Resource<?>> resolveChildren(String path) { ResourcePathResolver resolver = new ResourcePathResolver(getResourceFactory(), this, path); return resolver.resolve(); }
public static File getBaseDir(Project project) { if (project == null) { return null; } Resource<?> root = project.getRoot(); if (root == null) { return null; } return ResourceUtil.getContextFile(root); }
return singleResult(r); return singleResult(factory.create(DirectoryResource.class, homeDir)); switch (read()) tk = capture(); String regex = pathspecToRegEx(tk.startsWith(slashString) ? tk.substring(1) : tk); Pattern p; try results.addAll(new ResourcePathResolver(factory, child, path, cursor).resolve()); return singleResult(r);
List<Resource<?>> candidates) String regex = pathspecToRegEx(matchLevels[nestStart]); Pattern matchPattern = Pattern.compile(regex); return match(matchLevels, nestStart + 1, res, candidates); match(matchLevels, nestStart, r, candidates);
for (String optionValue : optionValues) String optionPattern = ResourcePathResolver.pathspecToRegEx(optionValue); if (optionValue != null && optionValue.equals(optionPattern))
@Override public String getReferencePath(final Resource<?> template) { WebResourcesFacet web = this.project.getFacet(WebResourcesFacet.class); for (DirectoryResource dir : web.getWebRootDirectories()) { if (ResourceUtil.isChildOf(dir, template)) { String relativePath = template.getFullyQualifiedName().substring(dir.getFullyQualifiedName().length()); return relativePath; } } throw new IllegalArgumentException("Not a valid template resource for this scaffold."); }
/** * Perform a search, by doing a breadth-first traversal of the resource tree for resources that match the path * string. * * @return A list of resources that match the path string. Empty if there are no matches. */ public List<Resource<?>> search() { return match(path.split(Pattern.quote(File.separator)), 0, res, new LinkedList<Resource<?>>()); }
/** * Returns the {@link Byte} array message digest of {@link #getResourceInputStream()} using the default MD5 * {@link MessageDigest}. */ public static byte[] getDigest(Resource<?> resource) { try { return getDigest(resource, MessageDigest.getInstance("MD5")); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("Error calculating digest for resource [" + resource.getFullyQualifiedName() + "]", e); } }
@Override public <E, T extends Resource<E>> T create(final Class<T> type, final E underlyingResource) { T result = null; TreeMap<Class<?>, ResourceGenerator> generated = new TreeMap<>(new RelatedClassComparator()); for (ResourceGenerator generator : getGenerators()) { if (generator.handles(type, underlyingResource)) { Class resourceType = generator.getResourceType(this, type, underlyingResource); if (type.isAssignableFrom(resourceType)) { generated.put(resourceType, generator); } } if (generated.size() > 0) { result = (T) generated.lastEntry().getValue().getResource(this, type, underlyingResource); } } return result; }
private Resource<?> getResourceResolved(Resource<?> value) { Resource<?> resource = (Resource<?>) value; File file = (File) resource.getUnderlyingResourceObject(); return new ResourcePathResolver(resourceFactory, resource, file.getPath()).resolve().get(0); }
protected boolean hasProjectFile(UIContext context, String fileName) { UISelection<Object> selection = context.getSelection(); if (selection != null) { Object object = selection.get(); if (object instanceof Resource) { File folder = ResourceUtil.getContextFile((Resource<?>) object); if (folder != null && Files.isDirectory(folder)) { File file = new File(folder, fileName); return file != null && file.exists() && file.isFile(); } } } return false; }
for (DirectoryResource dir : web.getWebRootDirectories()) if (ResourceUtil.isChildOf(dir, template))
protected File getSelectionFolder(UIContext context) { UISelection<Object> selection = context.getSelection(); if (selection != null) { Object object = selection.get(); if (object instanceof Resource) { File folder = ResourceUtil.getContextFile((Resource<?>) object); if (folder != null && Files.isDirectory(folder)) { return folder; } } } return null; }
Resource<?> fileResource = root.getChild(fileName); if (fileResource != null) { File answer = ResourceUtil.getContextFile(fileResource); if (answer != null) { return answer; File folder = ResourceUtil.getContextFile(root); if (folder != null && Files.isDirectory(folder)) { return new File(folder, fileName); Object object = selection.get(); if (object instanceof Resource) { File folder = ResourceUtil.getContextFile((Resource<?>) object); if (folder != null && Files.isDirectory(folder)) { return new File(folder, fileName);