public Response finalizeResponse(Response response) { // prepare status if (mapper != null) { StringBuffer status = new StringBuffer("All objects were "); if (mapper.failure) { status.append("not saved because of failure. Please see individual objects for details"); } else { status.append("saved"); } status.append("\nNumber of objects: ").append(mapper.numObjects); status.append("\nNumber of objects with insert problems: ").append(mapper.failedObjects); response.setStatus(status.toString()); response.setNumberAffected(mapper.failure ? 0 : mapper.successObjects); return mapper.getResponse(); } // must have been a query: no mapper if (response != null) response.setStatus("query ok"); return response; }
public Response processInsert(ObjectList insert) { // EntityTransaction tx = null; // EntityManager em = null; Response response = null; mapper = new CreateObjectsFromXml(requestCredentials, insert, null); try { // add objects to database // em = MorphbankConfig.getEntityManager(); // tx = em.getTransaction(); // tx.begin(); response = mapper.processObjects(); // tx.commit(); } catch (Exception e) { e.printStackTrace(); mapper.reportSuccess(null, null); // if (tx.isActive()) { // tx.rollback(); // } } return finalizeResponse(mapper.getResponse()); }
public Response processUpdate(Credentials requestCredentials, ObjectList update) { EntityTransaction tx = null; EntityManager em = null; boolean localTransaction = false; mapper = new UpdateObjectsFromXml(requestCredentials, update, MorphbankConfig.getRemoteServer()); try { // add objects to database // TODO process updates one object per transaction! // em = MorphbankConfig.getEntityManager(); // tx = em.getTransaction(); // if (!tx.isActive()) { // localTransaction = true; // tx.begin(); // } mapper.processObjects(); // if (localTransaction) tx.commit(); } catch (Exception e) { e.printStackTrace(); mapper.reportSuccess(null, null); if (localTransaction) tx.rollback(); } return finalizeResponse(mapper.getResponse()); }