/** * Extract the id from a resource element and add to the resource map then recurse into any * contained resources. Also extract the ids from any contained method and its representation or * fault elements. * * @param file the URI of the current WADL file being processed * @param r the resource element * @throws javax.xml.bind.JAXBException if the WADL file is invalid or if the code generator * encounters a problem. * @throws java.io.IOException if the specified WADL file cannot be read. */ protected void extractResourceIds(Resource r, URI file) throws JAXBException, IOException { processIDHref(file, r.getId(), null, r); for (String type : r.getType()) { processIDHref(file, null, type, r); } for (Object child : r.getMethodOrResource()) { if (child instanceof Method) extractMethodIds((Method) child, file); else if (child instanceof Resource) extractResourceIds((Resource) child, file); } }
/** * Add a resource and (recursively) its children to a tree starting at the parent. Follow * references to resources across WADL file boundaries * * @param parent the parent resource in the tree being built * @param resource the WADL resource to process * @param file the URI of the current WADL file being processed */ protected void buildResourceTree(ResourceNode parent, Resource resource, URI file) { if (resource != null) { ResourceNode n = parent.addChild(resource); for (String type : resource.getType()) { addTypeToResource(n, type, file); } for (Object child : resource.getMethodOrResource()) { if (child instanceof Resource) { Resource childResource = (Resource) child; buildResourceTree(n, childResource, file); } else if (child instanceof Method) { Method m = (Method) child; addMethodToResource(n, m, file); } } } }