View Javadoc
1   package xuml.tools.diagram;
2   
3   import java.io.IOException;
4   import java.io.PrintWriter;
5   
6   import javax.servlet.ServletException;
7   import javax.servlet.http.HttpServlet;
8   import javax.servlet.http.HttpServletRequest;
9   import javax.servlet.http.HttpServletResponse;
10  
11  import org.apache.commons.io.IOUtils;
12  
13  import jakarta.xml.bind.JAXBElement;
14  import xuml.tools.miuml.metamodel.jaxb.Domain;
15  import xuml.tools.miuml.metamodel.jaxb.Domains;
16  import xuml.tools.miuml.metamodel.jaxb.Marshaller;
17  import xuml.tools.miuml.metamodel.jaxb.ModeledDomain;
18  import xuml.tools.miuml.metamodel.jaxb.Subsystem;
19  import xuml.tools.util.xml.TaggedString;
20  
21  public class DomainsServlet extends HttpServlet {
22  
23      private static final long serialVersionUID = 2511746331522695068L;
24  
25      @Override
26      protected void doGet(HttpServletRequest req, HttpServletResponse resp)
27              throws ServletException, IOException {
28          String id = req.getParameter("id");
29          String xml = Context.instance().getDatastore().get("diagram", id + "-model", "model");
30          Domains domains = new Marshaller().unmarshal(IOUtils.toInputStream(xml));
31  
32          TaggedString.html#TaggedString">TaggedString t = new TaggedString();
33          for (JAXBElement<? extends Domain> domain : domains.getDomain()) {
34              t.startTag("h2");
35              t.append(domain.getValue().getName());
36              t.closeTag();
37              if (domain.getValue() instanceof ModeledDomain) {
38                  ModeledDomain d = (ModeledDomain) domain.getValue();
39                  int ssNumber = 0;
40                  for (Subsystem ss : d.getSubsystem()) {
41                      ssNumber++;
42                      t.startTag("a");
43                      t.addAttribute("href", "cd?id=" + id + "&ss=" + ssNumber);
44                      t.append(ss.getName());
45                      t.closeTag();
46                      t.startTag("br");
47                      t.closeTag();
48                  }
49              }
50          }
51          t.close();
52  
53          resp.setContentType("text/html");
54          PrintWriter out = resp.getWriter();
55          out.print(t);
56      }
57  }