Beispiel #1
0
 public static Root processJaxbClasses(
     Map<String, ApiClassDocumentation> javadocInfo, List<Class<?>> classes) {
   Map<Package, String> pkgToNamespace = Maps.newHashMap();
   Root root = new Root();
   for (Class<?> jaxbClass : classes) {
     JaxbInfo jaxbInfo = JaxbInfo.getFromCache(jaxbClass);
     String namespace = getNamespace(jaxbClass, pkgToNamespace);
     Service svc = root.getServiceForNamespace(namespace);
     if (svc == null) {
       svc = root.addService(new Service(namespace.replaceFirst("urn:", ""), namespace));
       String svcDesc = serviceDescriptions.get(namespace);
       if (svcDesc == null) {
         throw new RuntimeException("No service description exists for namespace " + namespace);
       } else {
         svc.setDescription(svcDesc);
       }
     }
     String cmdName;
     Command cmd;
     XmlElementDescription desc;
     String className = jaxbClass.getName();
     className = jaxbInfo.getRootElementName();
     if (className.endsWith("Request")) {
       cmdName = className.substring(0, className.lastIndexOf("Request"));
       cmd = svc.getCommand(namespace, cmdName);
       if (cmd == null) {
         cmd = svc.addCommand(new Command(svc, cmdName, namespace));
       }
       desc =
           XmlElementDescription.createTopLevel(
               jaxbInfo, namespace, jaxbInfo.getRootElementName());
       markupDuplicateElements(desc);
       cmd.setDescription(desc.getDescription());
       cmd.setRootRequestElement(desc);
       // getJavaDocInfoForCommand(cmd, jaxbClass);
     } else if (className.endsWith("Response")) {
       cmdName = className.substring(0, className.lastIndexOf("Response"));
       cmd = svc.getCommand(namespace, cmdName);
       if (cmd == null) {
         cmd = svc.addCommand(new Command(svc, cmdName, namespace));
       }
       desc =
           XmlElementDescription.createTopLevel(
               jaxbInfo, namespace, jaxbInfo.getRootElementName());
       markupDuplicateElements(desc);
       cmd.setRootResponseElement(desc);
     }
   }
   populateWithJavadocInfo(root, javadocInfo);
   return root;
 }