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 }