Package org.jboss.ejb.plugins.cmp.jdbc

Source Code of org.jboss.ejb.plugins.cmp.jdbc.JDBCPostCreateEntityCommand

/*     */ package org.jboss.ejb.plugins.cmp.jdbc;
/*     */
/*     */ import java.lang.reflect.Method;
/*     */ import java.util.ArrayList;
/*     */ import java.util.List;
/*     */ import org.jboss.ejb.EntityEnterpriseContext;
/*     */ import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge;
/*     */ import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
/*     */ import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCFieldBridge;
/*     */
/*     */ public final class JDBCPostCreateEntityCommand
/*     */ {
/*     */   private final JDBCEntityBridge entity;
/*     */   private final JDBCCMRFieldBridge[] cmrWithFKMappedToCMP;
/*     */
/*     */   public JDBCPostCreateEntityCommand(JDBCStoreManager manager)
/*     */   {
/*  50 */     this.entity = ((JDBCEntityBridge)manager.getEntityBridge());
/*  51 */     JDBCFieldBridge[] cmrFields = this.entity.getCMRFields();
/*  52 */     List fkToCMPList = new ArrayList(4);
/*  53 */     for (int i = 0; i < cmrFields.length; i++)
/*     */     {
/*  55 */       JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge)cmrFields[i];
/*  56 */       JDBCCMRFieldBridge relatedCMRField = (JDBCCMRFieldBridge)cmrField.getRelatedCMRField();
/*  57 */       if ((!cmrField.hasFKFieldsMappedToCMPFields()) && (!relatedCMRField.hasFKFieldsMappedToCMPFields())) {
/*     */         continue;
/*     */       }
/*  60 */       fkToCMPList.add(cmrField);
/*     */     }
/*     */
/*  63 */     if (fkToCMPList.isEmpty())
/*  64 */       this.cmrWithFKMappedToCMP = null;
/*     */     else
/*  66 */       this.cmrWithFKMappedToCMP = ((JDBCCMRFieldBridge[])(JDBCCMRFieldBridge[])fkToCMPList.toArray(new JDBCCMRFieldBridge[fkToCMPList.size()]));
/*     */   }
/*     */
/*     */   public Object execute(Method m, Object[] args, EntityEnterpriseContext ctx)
/*     */   {
/*  73 */     if (this.cmrWithFKMappedToCMP == null) {
/*  74 */       return null;
/*     */     }
/*  76 */     for (int i = 0; i < this.cmrWithFKMappedToCMP.length; i++)
/*     */     {
/*  78 */       JDBCCMRFieldBridge cmrField = this.cmrWithFKMappedToCMP[i];
/*  79 */       JDBCCMRFieldBridge relatedCMRField = (JDBCCMRFieldBridge)cmrField.getRelatedCMRField();
/*  80 */       if (cmrField.hasFKFieldsMappedToCMPFields())
/*     */       {
/*  82 */         Object relatedId = cmrField.getRelatedIdFromContext(ctx);
/*  83 */         if (relatedId != null)
/*     */         {
/*     */           try
/*     */           {
/*  87 */             if (cmrField.isForeignKeyValid(relatedId))
/*     */             {
/*  89 */               cmrField.createRelationLinks(ctx, relatedId);
/*     */             }
/*     */             else
/*     */             {
/*  93 */               relatedCMRField.addRelatedPKWaitingForMyPK(relatedId, ctx.getId());
/*     */             }
/*     */           }
/*     */           catch (Exception e)
/*     */           {
/*     */           }
/*     */         }
/*     */       }
/*     */       else {
/* 102 */         if (!relatedCMRField.hasFKFieldsMappedToCMPFields())
/*     */           continue;
/* 104 */         cmrField.addRelatedPKsWaitedForMe(ctx);
/*     */       }
/*     */     }
/* 107 */     return null;
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.ejb.plugins.cmp.jdbc.JDBCPostCreateEntityCommand
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.ejb.plugins.cmp.jdbc.JDBCPostCreateEntityCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.