Upload de arquivo da Rede Bayesiana.
[simdecs_seam.git] / SimDeCS / src / hot / org / ufcspa / simdecs / session / crud / admin / ArquivoRedeHome.java
CommitLineData
6f43ba4a
MS
1package org.ufcspa.simdecs.session.crud.admin;
2
69e26a06
MS
3import java.io.ByteArrayInputStream;
4import java.util.ArrayList;
5
6import javax.persistence.EntityManager;
7
8import org.jboss.seam.annotations.In;
9import org.jboss.seam.annotations.Logger;
6f43ba4a
MS
10import org.jboss.seam.annotations.Name;
11import org.jboss.seam.annotations.Begin;
12import org.jboss.seam.annotations.web.RequestParameter;
69e26a06 13import org.jboss.seam.log.Log;
6f43ba4a
MS
14
15import org.ufcspa.simdecs.entities.ArquivoRede;
69e26a06
MS
16import org.ufcspa.simdecs.entities.BayesianNetworkParser;
17import org.ufcspa.simdecs.entities.Nodo;
18import org.ufcspa.simdecs.entities.Rede;
19import org.ufcspa.simdecs.session.crud.defaults.SimDeCSEntityHome;
6f43ba4a
MS
20
21@Name("arquivoRedeHome")
69e26a06 22public class ArquivoRedeHome extends SimDeCSEntityHome<ArquivoRede>
6f43ba4a 23{
69e26a06 24 private static final long serialVersionUID = 1L;
6f43ba4a 25
69e26a06
MS
26 @Logger private Log log;
27 @In
28 private EntityManager entityManager;
29
30 @RequestParameter Long arquivoRedeId;
31
6f43ba4a
MS
32 @Override
33 public Object getId()
34 {
35 if (arquivoRedeId == null)
36 {
37 return super.getId();
38 }
39 else
40 {
41 return arquivoRedeId;
42 }
43 }
44
45 @Override @Begin
46 public void create() {
47 super.create();
48 }
69e26a06
MS
49
50 public void saveNetwork() throws Exception {
51 BayesianNetworkParser parser = new BayesianNetworkParser();
52 parser.parseBayesianNetwork(new ByteArrayInputStream(super.getInstance().getData()));
53 String name = parser.getBayesianNetworkName();
54 ArrayList<String> nodes = parser.getBayesianNetworkNodes();
55 log.info(name + ": " + nodes);
56
57 Rede rede = new Rede();
58 rede.setNome(name);
59 rede.setArquivo(super.getInstance());
60 entityManager.persist(rede);
61
62 for (int i = 0; i < nodes.size(); i++){
63 Nodo nodo = new Nodo();
64 nodo.setNome(nodes.get(i));
65 nodo.setRede(rede);
66 entityManager.persist(nodo);
67 }
68
69 super.persist();
70 }
6f43ba4a
MS
71
72}