User: dirk    
  Date: 01/02/12 01:20:36

  Modified:    src/main/org/jboss/ejb/plugins/jaws/jdbc JDBCCommand.java
                        JDBCLoadEntityCommand.java
  Log:
  JAWS patch for using nested fields.
  
  Revision  Changes    Path
  1.22      +32 -6     jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCCommand.java
  
  Index: JDBCCommand.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCCommand.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- JDBCCommand.java  2000/12/07 15:44:36     1.21
  +++ JDBCCommand.java  2001/02/12 09:20:35     1.22
  @@ -56,7 +56,8 @@
    * utility methods that database commands may need to call.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Justin Forder</a>
  - * @version $Revision: 1.21 $
  + * @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
  + * @version $Revision: 1.22 $
    */
   public abstract class JDBCCommand
   {
  @@ -103,7 +104,7 @@
      /**
       * Gives compile-time control of tracing.
       */
  -   public static boolean debug = false;
  +   public static boolean debug = true;
   
      // Constructors --------------------------------------------------
   
  @@ -469,6 +470,25 @@
           return result;
       }
   
  +     /**
  +      * Wrapper around getResultObject(ResultSet rs, int idx, Class destination).
  +      */
  +     protected Object getResultObject(ResultSet rs, int idx, CMPFieldMetaData 
cmpField)
  +             throws SQLException {
  +             if (!cmpField.isNested()) {
  +                     // do it as before
  +                     return getResultObject(rs, idx, cmpField.getField().getType());
  +             }
  +             
  +             // deal with composite object
  +             log.warning("Using Inprise feature.");
  +             
  +             // Assuming no one will ever use BLOPS in composite objects.
  +             // TODO Should be tested for BLOPability
  +             return rs.getObject(idx);
  +     }
  +
  +
      /**
       * Gets the integer JDBC type code corresponding to the given name.
       *
  @@ -578,8 +598,7 @@
      protected Object getCMPFieldValue(Object instance, CMPFieldMetaData 
fieldMetaData)
         throws IllegalAccessException
      {
  -      Field field = fieldMetaData.getField();
  -      return field.get(instance);
  +              return fieldMetaData.getValue(instance);
      }
   
      protected void setCMPFieldValue(Object instance,
  @@ -587,8 +606,15 @@
                                      Object value)
         throws IllegalAccessException
      {
  -      Field field = fieldMetaData.getField();
  -      field.set(instance, value);
  +              if (fieldMetaData.isNested()) {
  +                      // we have a nested field
  +                      fieldMetaData.set(instance, value);
  +              }
  +              else {
  +                      // the usual way
  +                      Field field = fieldMetaData.getField();
  +                      field.set(instance, value);
  +              }
      }
   
      protected Object getPkFieldValue(Object pk, PkFieldMetaData pkFieldMetaData)
  
  
  
  1.7       +3 -2      
jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCLoadEntityCommand.java
  
  Index: JDBCLoadEntityCommand.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCLoadEntityCommand.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JDBCLoadEntityCommand.java        2000/12/07 15:44:37     1.6
  +++ JDBCLoadEntityCommand.java        2001/02/12 09:20:35     1.7
  @@ -33,7 +33,8 @@
    * @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.6 $
  + * @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
  + * @version $Revision: 1.7 $
    */
   public class JDBCLoadEntityCommand
      extends JDBCQueryCommand
  @@ -111,7 +112,7 @@
            
            setCMPFieldValue(ctx.getInstance(), 
                             cmpField, 
  -                          getResultObject(rs, idx++, 
cmpField.getField().getType()));
  +                          getResultObject(rs, idx++, cmpField));
         }
   
         // Store state to be able to do tuned updates
  
  
  

Reply via email to