/** * Add an XML registry. * * @param registry The registry to add. */ public void add(Registry registry) { add(registry.getSchema()); String namespace = registry.getSchema().getNamespace(); String prefix = addNamespace(namespace); SchemaInfo schemaInfo = namespacesToSchemas.get(namespace); if (schemaInfo == null) { schemaInfo = new SchemaInfo(); schemaInfo.setId(prefix); schemaInfo.setNamespace(namespace); namespacesToSchemas.put(namespace, schemaInfo); } schemaInfo.getRegistries().add(registry); REFERENCE_STACK.get().addFirst("registry " + registry.getQualifiedName()); addReferencedTypeDefinitions(registry); for (LocalElementDeclaration led : registry.getLocalElementDeclarations()) { REFERENCE_STACK.get().addFirst("method " + led.getSimpleName()); add(led); REFERENCE_STACK.get().removeFirst(); } REFERENCE_STACK.get().removeFirst(); }
for (Registry registry : schemaInfo.getRegistries()) { exportedClasses.add(registry.getQualifiedName());
/** * Finds the local element declaration for the specified class declaration. * * @param declaration The declaration for which to find the local element declaration. * @return The local element declaration, or null if none found. */ public LocalElementDeclaration findLocalElementDeclaration(ClassDeclaration declaration) { if (declaration.getPackage() != null) { String packageName = declaration.getPackage().getQualifiedName(); for (SchemaInfo schemaInfo : namespacesToSchemas.values()) { for (Registry registry : schemaInfo.getRegistries()) { if (registry.getSchema().getQualifiedName().equals(packageName)) { //find the registry for the declaration. for (LocalElementDeclaration localElement : registry.getLocalElementDeclarations()) { if (localElement.getElementTypeDeclaration() != null && localElement.getElementTypeDeclaration().getQualifiedName().equals(declaration.getQualifiedName())) { return localElement; } } } } } } return null; }
for (Registry registry : schemaInfo.getRegistries()) { model.put("registry", registry); processTemplate(registryTemplate, model);