private File getAnchor() { if (null != m_parent) { File anchor = m_parent.getBaseDir(); if (null != anchor) { return anchor; } } return m_library.getRootDirectory(); }
DefaultResource[] getDefaultConsumers(final boolean expand) { if (!expand) { ArrayList<DefaultResource> list = new ArrayList<DefaultResource>(); DefaultResource[] resources = m_library.selectDefaultResources("**/*"); for (int i = 0; i < resources.length; i++) { DefaultResource resource = resources[i]; if (!list.contains(resource) && resource.isaConsumer(this)) { list.add(resource); } } return list.toArray(new DefaultResource[0]); } else { ArrayList<DefaultResource> visited = new ArrayList<DefaultResource>(); ArrayList<DefaultResource> stack = new ArrayList<DefaultResource>(); DefaultResource[] consumers = getDefaultConsumers(false); for (int i = 0; i < consumers.length; i++) { DefaultResource consumer = consumers[i]; processConsumer(visited, stack, consumer); } return (DefaultResource[]) stack.toArray(new DefaultResource[0]); } }
DefaultResource[] getLocalDefaultProviders(final Scope scope, final Category category) { if (null == m_directive) { return new DefaultResource[0]; } IncludeDirective[] includes = getLocalIncludes(scope, category); DefaultResource[] resources = new DefaultResource[includes.length]; for (int i = 0; i < includes.length; i++) { IncludeDirective include = includes[i]; if (include.getMode().equals(IncludeDirective.URI)) { try { String value = include.getValue(); String urn = resolve(value); Properties properties = include.getProperties(); resources[i] = m_library.getAnonymousResource(urn, properties); } catch (URISyntaxException e) { final String error = "Invalid uri value: " + include.getValue(); throw new RuntimeException(error, e); } catch (InvalidNameException e) { final String error = "An anonomous dependency include reference to [" + include + "] within the resource [" + getResourcePath() + "] could not be resolved."; throw new InvalidNameException(error, e); } catch (Exception e) { final String error = "Unexpected error during dynamic resource creation."; throw new RuntimeException(error, e); } } else { String ref = getIncludeReference(include); try { DefaultResource resource = m_library.getDefaultResource(ref); resources[i] = resource; } catch (InvalidNameException e) { if (null == category) { final String error = "A dependency include [" + ref + "] within [" + this + "] referencing [" + ref + "] under the scope [" + scope + "] is unknown."; throw new InvalidNameException(error); } else { final String error = "A dependency include within [" + this + "] referencing [" + ref + "] under the scope [" + scope + "] and category [" + category + "] is unknown."; throw new InvalidNameException(error); } } } } return resources; }