User: dsundstrom
  Date: 02/01/15 14:24:25

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc
                        JDBCRemoveEntityCommand.java
  Log:
  Converted field arrays to field lists.
  
  Revision  Changes    Path
  1.13      +30 -26    
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCRemoveEntityCommand.java
  
  Index: JDBCRemoveEntityCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCRemoveEntityCommand.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- JDBCRemoveEntityCommand.java      2002/01/05 12:08:51     1.12
  +++ JDBCRemoveEntityCommand.java      2002/01/15 22:24:25     1.13
  @@ -13,6 +13,7 @@
   import java.util.HashMap;
   import java.util.HashSet;
   import java.util.Iterator;
  +import java.util.List;
   import javax.ejb.EJBLocalObject;
   import javax.ejb.RemoveException;
   import javax.sql.DataSource;
  @@ -29,7 +30,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Joe Shevland</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Justin Forder</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public class JDBCRemoveEntityCommand {
      
  @@ -52,37 +53,34 @@
         sql.append("DELETE");
         sql.append(" FROM ").append(entity.getTableName());
         sql.append(" WHERE ").append(SQLUtil.getWhereClause(
  -               entity.getJDBCPrimaryKeyFields()));
  +               entity.getPrimaryKeyFields()));
         
         removeEntitySQL = sql.toString();
  -      if (log.isDebugEnabled())
  -         log.debug("Remove SQL: " + removeEntitySQL);
  +      log.debug("Remove SQL: " + removeEntitySQL);
      }
  -
  +   
      public void execute(EntityEnterpriseContext context)
            throws RemoveException {
  -
  +      
         // remove entity from all relations
         HashMap oldRelations = removeFromRelations(context);
   
         // update the related entities (stores the removal from relationships)
  -      if(entity.getJDBCCMRFields().length > 0) {
  +      if(!entity.getCMRFields().isEmpty()) {
            manager.getContainer().synchronizeEntitiesWithinTransaction(
                  context.getTransaction());
         }
  -
  +      
         Connection con = null;
         PreparedStatement ps = null;
         int rowsAffected = 0;
  -      boolean debug = log.isDebugEnabled();
         try {
            // get the connection
            DataSource dataSource = entity.getDataSource();
            con = dataSource.getConnection();
  -
  +         
            // create the statement
  -         if (debug)
  -            log.debug("Executing SQL: " + removeEntitySQL);
  +         log.debug("Executing SQL: " + removeEntitySQL);
            ps = con.prepareStatement(removeEntitySQL);
            
            // set the parameters
  @@ -91,7 +89,7 @@
            // execute statement
            rowsAffected = ps.executeUpdate();
         } catch(Exception e) {
  -         log.error(e);
  +         log.error("Could not remove " + context.getId(), e);
            throw new RemoveException("Could not remove " + context.getId());
         } finally {
            JDBCUtil.safeClose(ps);
  @@ -102,27 +100,31 @@
         if(rowsAffected == 0) {
            throw new RemoveException("Could not remove entity");
         }
  -      if (debug)
  -         log.debug("Remove: Rows affected = " + rowsAffected);
  +      log.debug("Remove: Rows affected = " + rowsAffected);
   
         // cascate-delete to old relations, if relation uses cascade.
         cascadeDelete(oldRelations);
  +
  +      manager.getReadAheadCache().removeCachedData(context.getId());
      }
   
      private HashMap removeFromRelations(EntityEnterpriseContext context) {
         HashMap oldRelations = new HashMap();
  -      JDBCCMRFieldBridge[] cmrFields = entity.getJDBCCMRFields();
         
         // remove entity from all relations before removing from db
  -      for(int i=0; i<cmrFields.length; i++) {
  -         if(cmrFields[i].isCollectionValued()) {
  -            Collection oldValue = (Collection)cmrFields[i].getValue(context);
  -            oldRelations.put(cmrFields[i], new HashSet(oldValue));
  +      List cmrFields = entity.getCMRFields();
  +      for(Iterator iter = cmrFields.iterator(); iter.hasNext();) { 
  +         JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge)iter.next();
  +
  +         if(cmrField.isCollectionValued()) {
  +            Collection oldValue = 
  +                  (Collection)cmrField.getInstanceValue(context);
  +            oldRelations.put(cmrField, new HashSet(oldValue));
               oldValue.clear();
            } else {
  -            Object oldValue = cmrFields[i].getValue(context);
  -            oldRelations.put(cmrFields[i], oldValue);
  -            cmrFields[i].setValue(context, null);
  +            Object oldValue = cmrField.getInstanceValue(context);
  +            oldRelations.put(cmrField, oldValue);
  +            cmrField.setInstanceValue(context, null);
            }
         }
         return oldRelations;
  @@ -130,11 +132,13 @@
      
      private void cascadeDelete(HashMap oldRelations) throws RemoveException {
         HashSet deletedEntities = new HashSet();
  -      JDBCCMRFieldBridge[] cmrFields = entity.getJDBCCMRFields();
  +
  +      List cmrFields = entity.getCMRFields();
  +      for(Iterator iter = cmrFields.iterator(); iter.hasNext();) { 
  +         JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge)iter.next();
   
  -      for(int i=0; i<cmrFields.length; i++) {
  -         if(cmrFields[i].getMetaData().getRelatedRole().isCascadeDelete()) {
  -            Object oldRelation = oldRelations.get(cmrFields[i]);
  +         if(cmrField.getMetaData().getRelatedRole().isCascadeDelete()) {
  +            Object oldRelation = oldRelations.get(cmrField);
               if(oldRelation instanceof Collection) {
                  Iterator oldValues = ((Collection)oldRelation).iterator();
                  while(oldValues.hasNext()) {
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to