package org.ufcspa.simdecs.session.crud.admin;
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+
+import javax.persistence.EntityManager;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.web.RequestParameter;
-import org.jboss.seam.framework.EntityHome;
+import org.jboss.seam.log.Log;
import org.ufcspa.simdecs.entities.ArquivoRede;
+import org.ufcspa.simdecs.entities.BayesianNetworkParser;
+import org.ufcspa.simdecs.entities.Nodo;
+import org.ufcspa.simdecs.entities.Rede;
+import org.ufcspa.simdecs.session.crud.defaults.SimDeCSEntityHome;
@Name("arquivoRedeHome")
-public class ArquivoRedeHome extends EntityHome<ArquivoRede>
+public class ArquivoRedeHome extends SimDeCSEntityHome<ArquivoRede>
{
- @RequestParameter Long arquivoRedeId;
+ private static final long serialVersionUID = 1L;
+ @Logger private Log log;
+ @In
+ private EntityManager entityManager;
+
+ @RequestParameter Long arquivoRedeId;
+
@Override
public Object getId()
{
public void create() {
super.create();
}
+
+ public void saveNetwork() throws Exception {
+ BayesianNetworkParser parser = new BayesianNetworkParser();
+ parser.parseBayesianNetwork(new ByteArrayInputStream(super.getInstance().getData()));
+ String name = parser.getBayesianNetworkName();
+ ArrayList<String> nodes = parser.getBayesianNetworkNodes();
+ log.info(name + ": " + nodes);
+
+ Rede rede = new Rede();
+ rede.setNome(name);
+ rede.setArquivo(super.getInstance());
+ entityManager.persist(rede);
+
+ for (int i = 0; i < nodes.size(); i++){
+ Nodo nodo = new Nodo();
+ nodo.setNome(nodes.get(i));
+ nodo.setRede(rede);
+ entityManager.persist(nodo);
+ }
+
+ super.persist();
+ }
}