View Javadoc
1   package ejava.projects.esales.blimpl;
2   
3   import java.io.PrintStream;
4   
5   import javax.persistence.EntityManager;
6   import javax.persistence.EntityManagerFactory;
7   import javax.persistence.EntityTransaction;
8   import javax.persistence.Persistence;
9   
10  import org.slf4j.Logger;
11  import org.slf4j.LoggerFactory;
12  
13  import ejava.projects.esales.bl.AccountMgmt;
14  import ejava.projects.esales.bo.Account;
15  import ejava.projects.esales.jpa.JPAAccountDAO;
16  
17  public class AccountMgmtCommand extends ESalesIngestCommand {
18  	@SuppressWarnings("unused")
19  	private static final Logger log = LoggerFactory.getLogger(AccountMgmtCommand.class);
20  	private static String command = System.getProperty("command");
21  	private static String indexStr = System.getProperty("index","0");
22  	private static String countStr = System.getProperty("count","1");
23  	private static PrintStream out = System.out;
24  	
25  	private static EntityManagerFactory getEMF() {
26  		return Persistence.createEntityManagerFactory("eSalesBO");
27  	}
28  	
29  	private static void invoke(AccountMgmt accountMgmt) throws Exception {
30  		if (command == null) {
31  			throw new Exception("command not supplied");
32  		}
33  		else if ("listAccounts".equals(command)) {
34  			listAccounts(accountMgmt);
35  		}
36  		else {
37  			throw new Exception("unknown command:" + command);
38  		}
39  	}
40  	
41  	private static void listAccounts(AccountMgmt accountMgmt) 
42  	    throws Exception {
43  		
44  		int index = Integer.parseInt(indexStr);
45  		int count = Integer.parseInt(countStr);
46  		
47  		for (Account account : accountMgmt.getAccounts(index, count)) {
48  	        out.println("account:" + account);	    	
49  		}
50  	}
51  	
52  	public static void main(String args[]) {		
53  		try {
54  			EntityManagerFactory emf = null;
55  			EntityManager em = null;
56  			try {
57  				emf = getEMF();
58  				em = emf.createEntityManager();
59  				JPAAccountDAO accountDAO = new JPAAccountDAO();
60  				accountDAO.setEntityManager(em);
61  				
62  			    AccountMgmtImpl accountMgmt = new AccountMgmtImpl();
63  			    accountMgmt.setAccountDAO(accountDAO);
64  			    em.getTransaction().begin();
65  			    
66  			    invoke(accountMgmt);
67  			}
68  			finally {
69  				if (em != null) {
70  					EntityTransaction tx = em.getTransaction();
71  					if (tx.getRollbackOnly()) { tx.rollback(); }
72  					else                      { tx.commit(); }
73   				}
74  				if (emf != null) { emf.close(); }				
75  			}
76  		}
77  		catch (Exception ex) {
78  			ex.printStackTrace();
79  			System.exit(-1);
80  		}
81  	}
82  }