summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Moger <james.moger@gmail.com>2011-08-09 13:56:44 -0400
committerJames Moger <james.moger@gmail.com>2011-08-09 13:56:44 -0400
commit01ec38ed904bd24c9075edfc12c2b41c1e13d249 (patch)
tree0d2ed8b753a4bc8665703463a114750d013fbf06
parent1a2339a9f1f96ddca64ab392dd7f9e1621e6c201 (diff)
downloadiciql-01ec38ed904bd24c9075edfc12c2b41c1e13d249.tar.gz
iciql-01ec38ed904bd24c9075edfc12c2b41c1e13d249.zip
All columns are assumed NULLABLE. IQColumn.allowNull->IQColumn.nullable
-rw-r--r--docs/01_model_classes.mkd5
-rw-r--r--docs/05_releases.mkd2
-rw-r--r--src/com/iciql/Db.java8
-rw-r--r--src/com/iciql/DbVersion.java14
-rw-r--r--src/com/iciql/Iciql.java4
-rw-r--r--src/com/iciql/TableDefinition.java10
-rw-r--r--src/com/iciql/TableInspector.java12
-rw-r--r--tests/com/iciql/test/ModelsTest.java2
-rw-r--r--tests/com/iciql/test/models/DefaultValuesModel.java2
9 files changed, 31 insertions, 28 deletions
diff --git a/docs/01_model_classes.mkd b/docs/01_model_classes.mkd
index 274cb92..bdddd80 100644
--- a/docs/01_model_classes.mkd
+++ b/docs/01_model_classes.mkd
@@ -8,8 +8,9 @@ Alternatively, model classes can be automatically generated by iciql using the m
### Configuration Requirements and Limitations
1. Your model class **must** provide a public default constructor.
-2. Only the specified types are supported. Other types such as arrays and custom types are not supported.
-3. Triggers, views, and other advanced database features are not supported.
+2. All columns are assumed NULLABLE unless explicitly set *@IQColumn(nullable = false)*.
+3. Only the specified types are supported. Other types such as arrays and custom types are not supported.
+4. Triggers, views, and other advanced database features are not supported.
### Fully Supported Data Types
The following data types can be used for all iciql expressions.
diff --git a/docs/05_releases.mkd b/docs/05_releases.mkd
index 8d1295b..e889f2f 100644
--- a/docs/05_releases.mkd
+++ b/docs/05_releases.mkd
@@ -7,6 +7,8 @@
**%VERSION%** ([zip](http://code.google.com/p/iciql/downloads/detail?name=%ZIP%)|[jar](http://code.google.com/p/iciql/downloads/detail?name=%JAR%)) &nbsp; *released %BUILDDATE%*
- api change release (API v4)
+- @IQColumn(allowNull=true) -> @IQColumn(nullable=true)
+- All columns are assumed NULLABLE unless explicitly set *@IQColumn(nullable = false)*
- allow using objects to assign default values<br/>
%BEGINCODE%
// CREATE TABLE ... myDate DATETIME DEFAULT '2000-02-01 00:00:00'
diff --git a/src/com/iciql/Db.java b/src/com/iciql/Db.java
index 621e825..cae384d 100644
--- a/src/com/iciql/Db.java
+++ b/src/com/iciql/Db.java
@@ -236,7 +236,7 @@ public class Db {
DbVersion v = new DbVersion();
DbVersion dbVersion =
// (SCHEMA="" && TABLE="") == DATABASE
- from(v).where(v.schema).is("").and(v.table).is("").selectFirst();
+ from(v).where(v.schemaName).is("").and(v.tableName).is("").selectFirst();
if (dbVersion == null) {
// database has no version registration, but model specifies
// version: insert DbVersion entry and return.
@@ -268,14 +268,14 @@ public class Db {
// table is using iciql version tracking.
DbVersion v = new DbVersion();
String schema = StringUtils.isNullOrEmpty(model.schemaName) ? "" : model.schemaName;
- DbVersion dbVersion = from(v).where(v.schema).like(schema).and(v.table).like(model.tableName)
+ DbVersion dbVersion = from(v).where(v.schemaName).like(schema).and(v.tableName).like(model.tableName)
.selectFirst();
if (dbVersion == null) {
// table has no version registration, but model specifies
// version: insert DbVersion entry
DbVersion newTable = new DbVersion(model.tableVersion);
- newTable.schema = schema;
- newTable.table = model.tableName;
+ newTable.schemaName = schema;
+ newTable.tableName = model.tableName;
insert(newTable);
} else {
// table has a version registration:
diff --git a/src/com/iciql/DbVersion.java b/src/com/iciql/DbVersion.java
index 2a8aa44..8ccf66f 100644
--- a/src/com/iciql/DbVersion.java
+++ b/src/com/iciql/DbVersion.java
@@ -26,13 +26,13 @@ import com.iciql.Iciql.IQTable;
@IQTable(name = "_iq_versions", primaryKey = { "schemaName", "tableName"}, memoryTable = true)
public class DbVersion {
- @IQColumn(name = "schemaName", length = 255, allowNull = false)
- String schema = "";
+ @IQColumn(length = 255)
+ String schemaName = "";
- @IQColumn(name = "tableName", length = 255, allowNull = false)
- String table = "";
+ @IQColumn(length = 255)
+ String tableName = "";
- @IQColumn(name = "version")
+ @IQColumn
Integer version;
public DbVersion() {
@@ -47,8 +47,8 @@ public class DbVersion {
* the database version
*/
public DbVersion(int version) {
- this.schema = "";
- this.table = "";
+ this.schemaName = "";
+ this.tableName = "";
this.version = version;
}
diff --git a/src/com/iciql/Iciql.java b/src/com/iciql/Iciql.java
index 2eaf783..40c412a 100644
--- a/src/com/iciql/Iciql.java
+++ b/src/com/iciql/Iciql.java
@@ -408,9 +408,9 @@ public interface Iciql {
/**
* If false, iciql will set the column NOT NULL during the CREATE TABLE
- * phase. Default: false.
+ * phase. Default: true.
*/
- boolean allowNull() default false;
+ boolean nullable() default true;
/**
* The default value assigned to the column during the CREATE TABLE
diff --git a/src/com/iciql/TableDefinition.java b/src/com/iciql/TableDefinition.java
index 6e25c91..eb018bc 100644
--- a/src/com/iciql/TableDefinition.java
+++ b/src/com/iciql/TableDefinition.java
@@ -75,7 +75,7 @@ public class TableDefinition<T> {
boolean isPrimaryKey;
boolean isAutoIncrement;
boolean trimString;
- boolean allowNull;
+ boolean nullable;
String defaultValue;
EnumType enumType;
@@ -275,7 +275,7 @@ public class TableDefinition<T> {
boolean isPrimaryKey = false;
int maxLength = 0;
boolean trimString = false;
- boolean allowNull = true;
+ boolean nullable = true;
EnumType enumType = null;
String defaultValue = "";
// configure Java -> SQL enum mapping
@@ -303,7 +303,7 @@ public class TableDefinition<T> {
isPrimaryKey = col.primaryKey();
maxLength = col.length();
trimString = col.trim();
- allowNull = col.allowNull();
+ nullable = col.nullable();
// try using default object
try {
@@ -340,7 +340,7 @@ public class TableDefinition<T> {
fieldDef.isPrimaryKey = isPrimaryKey;
fieldDef.maxLength = maxLength;
fieldDef.trimString = trimString;
- fieldDef.allowNull = allowNull;
+ fieldDef.nullable = nullable;
fieldDef.defaultValue = defaultValue;
fieldDef.enumType = enumType;
fieldDef.dataType = ModelUtils.getDataType(fieldDef, strictTypeMapping);
@@ -562,7 +562,7 @@ public class TableDefinition<T> {
buff.append(" AUTO_INCREMENT");
}
- if (!field.allowNull) {
+ if (!field.nullable) {
buff.append(" NOT NULL");
}
diff --git a/src/com/iciql/TableInspector.java b/src/com/iciql/TableInspector.java
index 6ec848d..51b2d69 100644
--- a/src/com/iciql/TableInspector.java
+++ b/src/com/iciql/TableInspector.java
@@ -139,7 +139,7 @@ public class TableInspector {
col.type = rs.getString("TYPE_NAME");
col.clazz = ModelUtils.getClassForSqlType(col.type, dateTimeClass);
col.size = rs.getInt("COLUMN_SIZE");
- col.allowNull = rs.getInt("NULLABLE") == DatabaseMetaData.columnNullable;
+ col.nullable = rs.getInt("NULLABLE") == DatabaseMetaData.columnNullable;
col.isAutoIncrement = rs.getBoolean("IS_AUTOINCREMENT");
if (primaryKeys.size() == 1) {
if (col.name.equalsIgnoreCase(primaryKeys.get(0))) {
@@ -158,7 +158,7 @@ public class TableInspector {
/**
* Generates a model (class definition) from this table. The model includes
- * indexes, primary keys, default values, maxLengths, and allowNull
+ * indexes, primary keys, default values, lengths, and nullables.
* information.
* <p>
* The caller may optionally set a destination package name, whether or not
@@ -369,9 +369,9 @@ public class TableInspector {
}
}
- // IQColumn.allowNull
- if (!col.allowNull) {
- ap.addParameter("allowNull=false");
+ // IQColumn.nullable
+ if (!col.nullable) {
+ ap.addParameter("nullable=false");
}
// IQColumn.defaultValue
@@ -622,7 +622,7 @@ public class TableInspector {
String name;
String type;
int size;
- boolean allowNull;
+ boolean nullable;
Class<?> clazz;
boolean isPrimaryKey;
boolean isAutoIncrement;
diff --git a/tests/com/iciql/test/ModelsTest.java b/tests/com/iciql/test/ModelsTest.java
index d5edcfd..652bc4f 100644
--- a/tests/com/iciql/test/ModelsTest.java
+++ b/tests/com/iciql/test/ModelsTest.java
@@ -115,7 +115,7 @@ public class ModelsTest {
true);
assertEquals(1, models.size());
// a poor test, but a start
- assertEquals(1780, models.get(0).length());
+ assertEquals(1456, models.get(0).length());
}
@Test
diff --git a/tests/com/iciql/test/models/DefaultValuesModel.java b/tests/com/iciql/test/models/DefaultValuesModel.java
index 2669257..ab09186 100644
--- a/tests/com/iciql/test/models/DefaultValuesModel.java
+++ b/tests/com/iciql/test/models/DefaultValuesModel.java
@@ -50,7 +50,7 @@ public class DefaultValuesModel {
@IQEnum(EnumType.ORDINAL)
public Tree myOrdinalTree = Tree.PINE;
- @IQColumn(allowNull = true)
+ @IQColumn(nullable = true)
public Tree myNullTree;
public DefaultValuesModel() {