Changeset 762

Show
Ignore:
Timestamp:
06/26/07 15:39:02 (2 years ago)
Author:
koshi
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plugins/org.jalcedo.client.examples.jpa/META-INF/MANIFEST.MF

    r757 r762  
    1414Eclipse-LazyStart: true 
    1515Export-Package: org.jalcedo.client.examples.jpa, 
    16  org.jalcedo.client.examples.jpa.models, 
    1716 org.jalcedo.client.examples.jpa.views 
    1817Bundle-ClassPath: ., 
  • trunk/plugins/org.jalcedo.client.examples.jpa/src/org/jalcedo/client/examples/jpa/JpaItemComponentsFactory.java

    r757 r762  
    3838import org.jalcedo.client.events.ApplicationEventPublisher; 
    3939import org.jalcedo.client.events.DefaultEventPublisher; 
    40 import org.jalcedo.client.examples.controllers.ItemAddAction
    41 import org.jalcedo.client.examples.controllers.ItemApplyAction
    42 import org.jalcedo.client.examples.controllers.ItemFetchAction
    43 import org.jalcedo.client.examples.controllers.ItemRemoveAction
    44 import org.jalcedo.client.examples.jpa.models.JpaItemDataSource
    45 import org.jalcedo.client.examples.views.ItemContentProvider
    46 import org.jalcedo.client.examples.views.ItemDetailComposite
    47 import org.jalcedo.client.examples.views.ItemListComposite
     40import /*=<%=addActionFQDN%>*/org.jalcedo.client.examples.controllers.ItemAddAction/*-*/
     41import /*=<%=applyActionFQDN%>*/org.jalcedo.client.examples.controllers.ItemApplyAction/*-*/
     42import /*=<%=fetchActionFQDN%>*/org.jalcedo.client.examples.controllers.ItemFetchAction/*-*/
     43import /*=<%=removeActionFQDN%>*/org.jalcedo.client.examples.controllers.ItemRemoveAction/*-*/
     44import /*=<%=dataSourceFQDN%>*/org.jalcedo.client.examples.models.ItemDataSource/*-*/
     45import /*=<%=contentProviderFQDN%>*/org.jalcedo.client.examples.views.ItemContentProvider/*-*/
     46import /*=<%=detailCompositeFQDN%>*/org.jalcedo.client.examples.views.ItemDetailComposite/*-*/
     47import /*=<%=listCompositeFQDN%>*/org.jalcedo.client.examples.views.ItemListComposite/*-*/
    4848 
    4949public class /*=<%=factoryName%>*/JpaItemComponentsFactory/*-*/ { 
     
    5353         
    5454         
    55         /*=<%=dataSourceName%>*/JpaItemDataSource/*-*/ dataSource = new /*=<%=dataSourceName%>*/JpaItemDataSource()/*-*/; 
     55        /*=<%=dataSourceName%>*/ItemDataSource/*-*/ dataSource = new /*=<%=dataSourceName%>*/ItemDataSource()/*-*/; 
    5656        dataSource.setApplicationEventPublisher(applicationEventPublisher); 
    5757         
  • trunk/plugins/org.jalcedo.client.examples.jpa/src/org/jalcedo/client/examples/models/ItemDataSource.java

    r719 r762  
    1 package org.jalcedo.client.examples.models; 
     1/*=<%@ jet package="org.jalcedo.generator.client.internal.model.models"  
     2class="DataSourceGenerator" 
     3skeleton="skeleton/DataSourceGenerator.skeleton" %> 
     4<% 
     5    JClass beanDataSource = generated; 
     6    String modelPackageName = beanDataSource.getPackageName(); 
     7    String dataSourceName = beanDataSource.getClassName(); 
     8 
     9    String beanPackageName =  targetBean.getPackageName(); 
     10    String beanName = targetBean.getClassName(); 
     11    String beanProperty = targetBean.getIdField().getTypeName(); 
     12    String idGetterName = targetBean.getIdField().getGetterName(); 
     13    String idParser = targetBean.getIdField().getParser(); 
     14    String idType = targetBean.getIdField().getTypeName(); 
     15     
     16    String eventPackageName = beanEvent.getPackageName(); 
     17    String eventName = beanEvent.getClassName(); 
     18%>*//*-*/ 
     19package /*=<%=modelPackageName%>*/org.jalcedo.client.examples.models/*-*/; 
    220 
    321import java.util.List; 
    422 
     23import javax.persistence.EntityManager; 
     24import javax.persistence.EntityManagerFactory; 
     25import javax.persistence.EntityTransaction; 
     26import javax.persistence.Persistence; 
     27import javax.persistence.PersistenceUnit; 
     28import javax.persistence.Query; 
     29 
    530import org.jalcedo.client.ds.DataSource; 
    631import org.jalcedo.client.events.ApplicationEventPublisher; 
     32import /*=<%=eventPackageName%>*/org.jalcedo.client.examples.models/*-*/./*=<%=eventName%>*/ItemEvent/*-*/; 
     33import /*=<%=beanPackageName%>*/org.jalcedo.client.examples.models/*-*/./*=<%=beanName%>*/Item/*-*/; 
    734 
    8 /** 
    9  * unused empty class. 
    10  * @author yuanying 
    11  * 
    12  */ 
    13 public class ItemDataSource implements DataSource<Integer, Item> { 
     35public class /*=<%=dataSourceName%>*/ItemDataSource/*-*/ implements DataSource</*=<%=beanProperty%>*/Integer/*-*/, /*=<%=beanName%>*/Item/*-*/> { 
     36 
     37    private ApplicationEventPublisher applicationEventPublisher; 
    1438     
    15     @SuppressWarnings("unused") 
    16     private ApplicationEventPublisher applicationEventPublisher; 
    17  
    18     public Item create(Item newObject) { 
    19         return null; 
     39    private /*=<%=beanProperty%>*/Integer/*-*/ nextId = /*=<%=idParser+"(\"1\")"%>*/Integer.valueOf("1")/*-*/; 
     40     
     41    //TODO 
     42    @PersistenceUnit 
     43    private EntityManagerFactory entityManagerFactory; 
     44     
     45    public /*=<%=dataSourceName%>*/ItemDataSource/*-*/() { 
     46        this.entityManagerFactory = Persistence.createEntityManagerFactory("testpu"); 
     47         
     48        // create test data. 
     49        /*=*/ 
     50        Item item1 = new Item(); 
     51        item1.setId(nextId++); 
     52        item1.setPrice(20); 
     53        item1.setName("testName"); 
     54         
     55        Item item2 = new Item(); 
     56        item2.setId(nextId++); 
     57        item2.setPrice(30); 
     58        item2.setName("testName"); 
     59         
     60        EntityManager entityManager = this.entityManagerFactory.createEntityManager(); 
     61        EntityTransaction transaction = entityManager.getTransaction(); 
     62        try { 
     63            transaction.begin(); 
     64            entityManager.persist(item1); 
     65            entityManager.persist(item2); 
     66            transaction.commit(); 
     67        } catch (Exception ex) { 
     68            try { 
     69                transaction.rollback(); 
     70            } catch (Exception e) {} 
     71        } 
     72        /*-*/ 
     73    } 
     74     
     75    public ApplicationEventPublisher getApplicationEventPublisher() { 
     76        return applicationEventPublisher; 
    2077    } 
    2178 
    22     public void setApplicationEventPublisher( 
    23             ApplicationEventPublisher applicationEventPublisher) { 
     79    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { 
    2480        this.applicationEventPublisher = applicationEventPublisher; 
    2581    } 
    2682 
    27     public void delete(Item detachedObject) { 
     83    /** 
     84     *  
     85     * @param comment 
     86     * @return 
     87     */ 
     88    @SuppressWarnings("unchecked") 
     89    public List</*=<%=beanName%>*/Item/*-*/> findList() { 
     90        EntityManager entityManager = this.entityManagerFactory.createEntityManager(); 
     91        Query query = entityManager.createQuery("SELECT e FROM "+/*=<%=beanName%>*/"Item"+/*-*/" e"); 
     92        return query.getResultList(); 
     93    } 
     94     
     95    public /*=<%=beanName%>*/Item/*-*/ find(/*=<%=beanProperty%>*/Integer/*-*/ key) { 
     96        EntityManager entityManager = this.entityManagerFactory.createEntityManager(); 
     97        return entityManager.find(/*=<%=beanName%>*/Item/*-*/.class, key); 
    2898    } 
    2999 
    30     public Item edit(Item detachedObject) { 
    31         return null; 
     100    public /*=<%=beanName%>*/Item/*-*/ create(/*=<%=beanName%>*/Item/*-*/ newObject) { 
     101        newObject./*=<%=idSetterName%>*/setId/*-*/(nextId); 
     102        /*=<% if ( !idType.equals("String") ) { %>*//*-*/ 
     103        nextId = nextId + 1; 
     104        /*=<% } else { %><%="nextId = String.valueOf(Integer.valueOf(nextId) + 1);" %><% }%>*//*-*/ 
     105        EntityManager entityManager = this.entityManagerFactory.createEntityManager(); 
     106        EntityTransaction transaction = entityManager.getTransaction(); 
     107        try { 
     108            transaction.begin(); 
     109            entityManager.persist(newObject); 
     110            transaction.commit(); 
     111            this.getApplicationEventPublisher().publishEvent(new /*=<%=eventName%>*/ItemEvent/*-*/(newObject, /*=<%=eventName%>*/ItemEvent/*-*/.ADDED)); 
     112        } catch (Exception ex) { 
     113            try { 
     114                transaction.rollback(); 
     115            } catch (Exception e) {} 
     116        } 
     117        return newObject; 
    32118    } 
    33119 
    34     public Item find(Integer key) { 
    35         return null; 
    36     } 
    37  
    38     public List<Item> findList() { 
    39         return null; 
     120    /** 
     121     * TODO if fail to merge, throw Exception. 
     122     * @param comment 
     123     * @return 
     124     */ 
     125    public /*=<%=beanName%>*/Item/*-*/ edit(/*=<%=beanName%>*/Item/*-*/ transientObject) { 
     126        EntityManager entityManager = this.entityManagerFactory.createEntityManager(); 
     127        EntityTransaction transaction = entityManager.getTransaction(); 
     128        try { 
     129            transaction.begin(); 
     130            transientObject = entityManager.merge(transientObject); 
     131            transaction.commit(); 
     132            this.getApplicationEventPublisher().publishEvent(new /*=<%=eventName%>*/ItemEvent/*-*/(transientObject, /*=<%=eventName%>*/ItemEvent/*-*/.MODIFIED)); 
     133        } catch (Exception ex) { 
     134            try { 
     135                transaction.rollback(); 
     136            } catch (Exception e) {} 
     137        } 
     138        return transientObject; 
    40139    } 
    41140     
     141    public void delete(/*=<%=beanName%>*/Item/*-*/ persistentObject) { 
     142        EntityManager entityManager = this.entityManagerFactory.createEntityManager(); 
     143        EntityTransaction transaction = entityManager.getTransaction(); 
     144        try { 
     145            transaction.begin(); 
     146            persistentObject = entityManager.merge(persistentObject); 
     147            entityManager.remove(persistentObject); 
     148            transaction.commit(); 
     149            this.getApplicationEventPublisher().publishEvent(new /*=<%=eventName%>*/ItemEvent/*-*/(persistentObject, /*=<%=eventName%>*/ItemEvent/*-*/.DELETED)); 
     150        } catch (Exception ex) { 
     151            try { 
     152                transaction.rollback(); 
     153            } catch (Exception e) {} 
     154        } 
     155    } 
    42156}