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 }