1 24 package org.objectweb.jalisto.se.impl; 25 26 import org.objectweb.jalisto.se.exception.TransactionException; 27 import org.objectweb.jalisto.se.api.Session; 28 import org.objectweb.jalisto.se.api.Transaction; 29 30 public class TransactionImpl implements Transaction { 31 32 public TransactionImpl(Session session) { 33 this.session = session; 34 } 35 36 public void begin() { 37 checkIsNotActive(); 38 session.getInternalSession().begin(); 39 isActive = true; 40 } 41 42 public void commit() { 43 checkIsActive(); 44 session.getInternalSession().commit(); 45 isActive = false; 46 } 47 48 public boolean isActive() { 49 return isActive; 50 } 51 52 public Session getSession() { 53 return session; 54 } 55 56 public void rollback() { 57 checkIsActive(); 58 session.getInternalSession().rollback(); 59 isActive = false; 60 } 61 62 public void setOptimistic() { 63 checkIsNotActive(); 64 session.getInternalSession().setOptimistic(); 65 } 66 67 public void setPessimistic() { 68 checkIsNotActive(); 69 session.getInternalSession().setPessimistic(); 70 } 71 72 private void checkIsActive() { 73 if (!isActive) { 74 throw new TransactionException("Transaction is not active"); 75 } 76 } 77 78 private void checkIsNotActive() { 79 if (isActive) { 80 throw new TransactionException("Transaction is active"); 81 } 82 } 83 84 private Session session; 85 protected boolean isActive = false; 86 } 87 | Popular Tags |