User: dsundstrom
  Date: 02/02/11 22:17:15

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCType.java
                        JDBCTypeComplex.java JDBCTypeComplexProperty.java
                        JDBCTypeFactory.java JDBCTypeSimple.java
                        SQLUtil.java
  Log:
  Added optional not-null element to cmp-fields.
  Not null is on by by default for primitive types and primary key fields.
  
  Revision  Changes    Path
  1.4       +2 -1      jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCType.java
  
  Index: JDBCType.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCType.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JDBCType.java     1 Sep 2001 22:03:15 -0000       1.3
  +++ JDBCType.java     12 Feb 2002 06:17:15 -0000      1.4
  @@ -12,13 +12,14 @@
    * mapping of java classes to multipul columns.
    * 
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public interface JDBCType {
      public String[] getColumnNames();   
      public Class[] getJavaTypes();   
      public int[] getJDBCTypes();   
      public String[] getSQLTypes();
  +   public boolean[] getNotNull();
      
      public Object getColumnValue(int index, Object value);
      public Object setColumnValue(int index, Object value, Object columnValue);
  
  
  
  1.8       +11 -1     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeComplex.java
  
  Index: JDBCTypeComplex.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeComplex.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JDBCTypeComplex.java      15 Jan 2002 21:38:37 -0000      1.7
  +++ JDBCTypeComplex.java      12 Feb 2002 06:17:15 -0000      1.8
  @@ -24,7 +24,7 @@
    * details on how this is done.
    * 
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public class JDBCTypeComplex implements JDBCType {
      private JDBCTypeComplexProperty[] properties;
  @@ -32,6 +32,7 @@
      private Class[] javaTypes;   
      private int[] jdbcTypes;   
      private String[] sqlTypes;
  +   private boolean[] notNull;
      private Class fieldType;
      private HashMap propertiesByName = new HashMap();
   
  @@ -62,6 +63,11 @@
            sqlTypes[i] = properties[i].getSQLType();
         }
         
  +      notNull = new boolean[properties.length];
  +      for(int i=0; i<notNull.length; i++) {
  +         notNull[i] = properties[i].isNotNull();
  +      }
  +      
         for(int i=0; i<properties.length; i++) {
            propertiesByName.put(properties[i].getPropertyName(), properties[i]);
         }
  @@ -82,6 +88,10 @@
      
      public String[] getSQLTypes() {
         return sqlTypes;
  +   }
  +   
  +   public boolean[] getNotNull() {
  +      return notNull;
      }
      
      public JDBCTypeComplexProperty[] getProperties() {
  
  
  
  1.7       +10 -2     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeComplexProperty.java
  
  Index: JDBCTypeComplexProperty.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeComplexProperty.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JDBCTypeComplexProperty.java      24 Nov 2001 22:31:09 -0000      1.6
  +++ JDBCTypeComplexProperty.java      12 Feb 2002 06:17:15 -0000      1.7
  @@ -20,7 +20,7 @@
    * the Java Bean.
    * 
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.6 $
  + * @version $Revision: 1.7 $
    */
   public class JDBCTypeComplexProperty {
      private final String propertyName;
  @@ -28,6 +28,7 @@
      private final Class javaType;   
      private final int jdbcType;   
      private final String sqlType;
  +   private final boolean notNull;
      
      private final Method[] getters;
      private final Method[] setters;
  @@ -46,6 +47,7 @@
         this.javaType = javaType;
         this.jdbcType = jdbcType;
         this.sqlType = sqlType;
  +      this.notNull = false;
         this.getters = getters;
         this.setters = setters;
      }
  @@ -54,13 +56,15 @@
            JDBCTypeComplexProperty defaultProperty,
            String columnName,
            int jdbcType,
  -         String sqlType) {
  +         String sqlType,
  +         boolean notNull) {
   
         this.propertyName = defaultProperty.propertyName;
         this.columnName = columnName;
         this.javaType = defaultProperty.javaType;
         this.jdbcType = jdbcType;
         this.sqlType = sqlType;
  +      this.notNull = notNull;
         this.getters = defaultProperty.getters;
         this.setters = defaultProperty.setters;
      }
  @@ -83,6 +87,10 @@
      
      public String getSQLType() {
         return sqlType;
  +   }
  +
  +   public boolean isNotNull() {
  +      return notNull;
      }
      
      public Object getColumnValue(Object value) throws Exception {
  
  
  
  1.9       +17 -5     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeFactory.java
  
  Index: JDBCTypeFactory.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeFactory.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JDBCTypeFactory.java      24 Nov 2001 22:31:09 -0000      1.8
  +++ JDBCTypeFactory.java      12 Feb 2002 06:17:15 -0000      1.9
  @@ -27,7 +27,7 @@
    * this class is to flatten the JDBCValueClassMetaData into columns.
    * 
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.8 $
  + * @version $Revision: 1.9 $
    */
   public class JDBCTypeFactory {
      // the type mapping to use with the specified database
  @@ -63,7 +63,8 @@
         } else {
            String sqlType = typeMapping.getSqlTypeForJavaType(javaType);
            int jdbcType = typeMapping.getJdbcTypeForJavaType(javaType);
  -         return new JDBCTypeSimple(null, javaType, jdbcType, sqlType);
  +         boolean notNull = javaType.isPrimitive();
  +         return new JDBCTypeSimple(null, javaType, jdbcType, sqlType, notNull);
         }
      }
   
  @@ -108,7 +109,15 @@
            sqlType = typeMapping.getSqlTypeForJavaType(javaType);
            jdbcType = typeMapping.getJdbcTypeForJavaType(javaType);
         }
  -      return new JDBCTypeSimple(columnName, javaType, jdbcType, sqlType);
  +
  +      boolean notNull = cmpField.isNotNull();
  +
  +      return new JDBCTypeSimple(
  +            columnName,
  +            javaType,
  +            jdbcType,
  +            sqlType,
  +            notNull);
      }      
   
      private JDBCTypeComplex createTypeComplex(JDBCCMPFieldMetaData cmpField) {
  @@ -158,11 +167,14 @@
                  jdbcType = defaultProperties[i].getJDBCType();
               }
   
  +            boolean notNull = cmpField.isNotNull();
  +
               finalProperties[i] = new JDBCTypeComplexProperty(
                     defaultProperties[i],
                     columnName,
                     jdbcType,
  -                  sqlType);
  +                  sqlType,
  +                  notNull);
            }   
         }
         
  @@ -223,7 +235,7 @@
               sqlType = typeMapping.getSqlTypeForJavaType(javaType);
               jdbcType = typeMapping.getJdbcTypeForJavaType(javaType);
            }
  -      
  +
            Method[] getters = propertyStack.getGetters();
            Method[] setters = propertyStack.getSetters();
   
  
  
  
  1.4       +18 -4     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeSimple.java
  
  Index: JDBCTypeSimple.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCTypeSimple.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JDBCTypeSimple.java       1 Sep 2001 22:03:15 -0000       1.3
  +++ JDBCTypeSimple.java       12 Feb 2002 06:17:15 -0000      1.4
  @@ -12,19 +12,27 @@
    * This class provides a simple mapping of a Java type type to a single column.
    * 
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class JDBCTypeSimple implements JDBCType {
      private String[] columnNames;   
      private Class[] javaTypes;   
      private int[] jdbcTypes;   
      private String[] sqlTypes;
  +   private boolean[] notNull;
   
  -   public JDBCTypeSimple(String columnName, Class javaType, int jdbcType, String 
sqlType) {
  +   public JDBCTypeSimple(
  +         String columnName,
  +         Class javaType,
  +         int jdbcType,
  +         String sqlType,
  +         boolean notNull) {
  +      
         columnNames = new String[] { columnName };
         javaTypes = new Class[] { javaType };
         jdbcTypes = new int[] { jdbcType };
         sqlTypes = new String[] { sqlType };
  +      this.notNull = new boolean[] { notNull };
      }
   
      public String[] getColumnNames() {
  @@ -43,16 +51,22 @@
         return sqlTypes;
      }
      
  +   public boolean[] getNotNull() {
  +      return notNull;
  +   }
  +
      public Object getColumnValue(int index, Object value) {
         if(index != 0) {
  -         throw new IndexOutOfBoundsException("JDBCSimpleType does not support an 
index>0.");
  +         throw new IndexOutOfBoundsException("JDBCSimpleType does not " +
  +               "support an index>0.");
         }
         return value;
      }
   
      public Object setColumnValue(int index, Object value, Object columnValue) {
         if(index != 0) {
  -         throw new IndexOutOfBoundsException("JDBCSimpleType does not support an 
index>0.");
  +         throw new IndexOutOfBoundsException("JDBCSimpleType does not " +
  +               "support an index>0.");
         }
         return columnValue;
      }
  
  
  
  1.6       +5 -1      jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java
  
  Index: SQLUtil.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SQLUtil.java      15 Jan 2002 21:29:50 -0000      1.5
  +++ SQLUtil.java      12 Feb 2002 06:17:15 -0000      1.6
  @@ -18,7 +18,7 @@
    * SQLUtil helps with building sql statements.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class SQLUtil {
      // =======================================================================
  @@ -58,6 +58,7 @@
      public static String getCreateTableColumnsClause(JDBCType type) {
         String[] columnNames = type.getColumnNames();
         String[] sqlTypes = type.getSQLTypes();
  +      boolean[] notNull = type.getNotNull();
   
         StringBuffer buf = new StringBuffer();
         for(int i=0; i<columnNames.length; i++) {
  @@ -65,6 +66,9 @@
               buf.append(", ");
            }
            buf.append(columnNames[i]).append(" ").append(sqlTypes[i]);
  +         if(notNull[i]) {
  +            buf.append(" NOT NULL");
  +         }
         }
         return buf.toString();
      }
  
  
  

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

Reply via email to