public void addModel( EMetabolism metabolism, EModel model, Map<String, ECompartment> compartment_map, Map<String, ESpecies> species_map, List<EReaction> reaction_list, List<EReactant> reactant_list, List<EProduct> product_list, List<EBounds> bounds_list) { EntityManager em = getEntityManager(); try { em.getTransaction().begin(); em.persist(metabolism); em.persist(model); model.getMetabolism().getEModelCollection().add(model); for (ECompartment c : compartment_map.values()) { em.persist(c); c.getMetabolism().getECompartmentCollection().add(c); } for (ESpecies sp : species_map.values()) { em.persist(sp); sp.getCompartment().getESpeciesCollection().add(sp); } for (EReaction r : reaction_list) { em.persist(r); r.getMetabolism().getEReactionCollection().add(r); } for (EReactant r : reactant_list) { em.persist(r); r.getSpecies().getEReactantCollection().add(r); /* r.getReaction().getEReactantCollection().add(r); */ } for (EProduct p : product_list) { em.persist(p); p.getSpecies().getEProductCollection().add(p); /* p.getReaction().getEProductCollection().add(p); */ } for (EBounds b : bounds_list) { em.persist(b); b.getModel().getEBoundsCollection().add(b); /* b.getReaction().getEBoundsCollection().add(b); */ } em.merge(metabolism); em.getTransaction().commit(); } finally { em.close(); } }
private void removeModel(EntityManager em, EModel model) { /* delete model's Model */ if (model.getTask() != null) { em.remove(model.getTask()); } /* delete children */ for (EModel child : model.getEModelCollection()) { removeModel(em, child); } /* update Metabolism */ model.getMetabolism().getEModelCollection().remove(model); if (model.getMetabolism().getEModelCollection().size() == 0) { /* delete Metabolism */ em.remove(model.getMetabolism()); } em.remove(model); }