cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ntimof...@apache.org
Subject [4/7] cayenne git commit: CAY-2467 New type-aware Property API - update test classes
Date Thu, 27 Dec 2018 14:37:49 GMT
http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
index fd3be7d..722dc36 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Child.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_child_master.Master;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _Child extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Master> MASTER = Property.create("master", Master.class);
+    public static final EntityProperty<Master> MASTER = PropertyFactory.createEntity("master", Master.class);
 
 
     protected Object master;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
index fc412bd..7712038 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_child_master/auto/_Master.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_child_master.Child;
 
 /**
@@ -19,10 +23,11 @@ public abstract class _Master extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<Child>> CHILDREN = Property.create("children", List.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<Child> CHILDREN = PropertyFactory.createList("children", Child.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
index 7f3efed..cd8f549 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobDetail.java
@@ -5,7 +5,11 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_clob.ClobMaster;
 
 /**
@@ -18,10 +22,11 @@ public abstract class _ClobDetail extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> CLOB_DETAIL_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("CLOB_DETAIL_ID"), Integer.class);
     public static final String CLOB_DETAIL_ID_PK_COLUMN = "CLOB_DETAIL_ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<ClobMaster> MASTER = Property.create("master", ClobMaster.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final EntityProperty<ClobMaster> MASTER = PropertyFactory.createEntity("master", ClobMaster.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
index d970afe..59748e3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_clob/auto/_ClobMaster.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_clob.ClobDetail;
 
 /**
@@ -19,11 +23,12 @@ public abstract class _ClobMaster extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> CLOB_MASTER_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("CLOB_MASTER_ID"), Integer.class);
     public static final String CLOB_MASTER_ID_PK_COLUMN = "CLOB_MASTER_ID";
 
-    public static final Property<String> CLOB_COLUMN = Property.create("clobColumn", String.class);
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<ClobDetail>> DETAILS = Property.create("details", List.class);
+    public static final StringProperty<String> CLOB_COLUMN = PropertyFactory.createString("clobColumn", String.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<ClobDetail> DETAILS = PropertyFactory.createList("details", ClobDetail.class);
 
     protected String clobColumn;
     protected String name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
index 6543da7..43f61ae 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToMany.java
@@ -6,7 +6,8 @@ import java.io.ObjectOutputStream;
 import java.util.Collection;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToManyTarget;
 
 /**
@@ -21,7 +22,7 @@ public abstract class _CollectionToMany extends BaseDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Collection<CollectionToManyTarget>> TARGETS = Property.create("targets", Collection.class);
+    public static final ListProperty<CollectionToManyTarget> TARGETS = PropertyFactory.createList("targets", CollectionToManyTarget.class);
 
 
     protected Object targets;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
index 653d9d2..925bac3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_collection_to_many/auto/_CollectionToManyTarget.java
@@ -5,7 +5,8 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToMany;
 
 /**
@@ -20,7 +21,7 @@ public abstract class _CollectionToManyTarget extends BaseDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<CollectionToMany> COLLECTION_TO_MANY = Property.create("collectionToMany", CollectionToMany.class);
+    public static final EntityProperty<CollectionToMany> COLLECTION_TO_MANY = PropertyFactory.createEntity("collectionToMany", CollectionToMany.class);
 
 
     protected Object collectionToMany;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
index 7d986f3..e58c827 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatA.java
@@ -6,7 +6,10 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatB;
 
 /**
@@ -19,9 +22,10 @@ public abstract class _DeleteRuleFlatA extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FLATA_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FLATA_ID"), Integer.class);
     public static final String FLATA_ID_PK_COLUMN = "FLATA_ID";
 
-    public static final Property<List<DeleteRuleFlatB>> FLAT_B = Property.create("flatB", List.class);
+    public static final ListProperty<DeleteRuleFlatB> FLAT_B = PropertyFactory.createList("flatB", DeleteRuleFlatB.class);
 
 
     protected Object flatB;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
index 2df6405..a39a9da 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleFlatB.java
@@ -6,7 +6,10 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatA;
 
 /**
@@ -19,9 +22,10 @@ public abstract class _DeleteRuleFlatB extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FLATB_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FLATB_ID"), Integer.class);
     public static final String FLATB_ID_PK_COLUMN = "FLATB_ID";
 
-    public static final Property<List<DeleteRuleFlatA>> UNTITLED_REL = Property.create("untitledRel", List.class);
+    public static final ListProperty<DeleteRuleFlatA> UNTITLED_REL = PropertyFactory.createList("untitledRel", DeleteRuleFlatA.class);
 
 
     protected Object untitledRel;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
index 150a973..503fc24 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest1.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest2;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _DeleteRuleTest1 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> DEL_RULE_TEST1_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("DEL_RULE_TEST1_ID"), Integer.class);
     public static final String DEL_RULE_TEST1_ID_PK_COLUMN = "DEL_RULE_TEST1_ID";
 
-    public static final Property<DeleteRuleTest2> TEST2 = Property.create("test2", DeleteRuleTest2.class);
+    public static final EntityProperty<DeleteRuleTest2> TEST2 = PropertyFactory.createEntity("test2", DeleteRuleTest2.class);
 
 
     protected Object test2;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
index 12f0254..792913c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest2.java
@@ -6,7 +6,10 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest1;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest3;
 
@@ -20,10 +23,11 @@ public abstract class _DeleteRuleTest2 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> DEL_RULE_TEST2_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("DEL_RULE_TEST2_ID"), Integer.class);
     public static final String DEL_RULE_TEST2_ID_PK_COLUMN = "DEL_RULE_TEST2_ID";
 
-    public static final Property<List<DeleteRuleTest3>> DELETE_RULE_TEST3ARRAY = Property.create("deleteRuleTest3Array", List.class);
-    public static final Property<List<DeleteRuleTest1>> TEST1ARRAY = Property.create("test1Array", List.class);
+    public static final ListProperty<DeleteRuleTest3> DELETE_RULE_TEST3ARRAY = PropertyFactory.createList("deleteRuleTest3Array", DeleteRuleTest3.class);
+    public static final ListProperty<DeleteRuleTest1> TEST1ARRAY = PropertyFactory.createList("test1Array", DeleteRuleTest1.class);
 
 
     protected Object deleteRuleTest3Array;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
index 1cd806d..dcf6beb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_delete_rules/auto/_DeleteRuleTest3.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest2;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _DeleteRuleTest3 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> DELETE_RULE_TEST_3_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("DELETE_RULE_TEST_3_ID"), Integer.class);
     public static final String DELETE_RULE_TEST_3_ID_PK_COLUMN = "DELETE_RULE_TEST_3_ID";
 
-    public static final Property<DeleteRuleTest2> TO_DELETE_RULE_TEST2 = Property.create("toDeleteRuleTest2", DeleteRuleTest2.class);
+    public static final EntityProperty<DeleteRuleTest2> TO_DELETE_RULE_TEST2 = PropertyFactory.createEntity("toDeleteRuleTest2", DeleteRuleTest2.class);
 
 
     protected Object toDeleteRuleTest2;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
index a62f528..a5d5471 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedCircular.java
@@ -6,7 +6,10 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedCircular;
 
 /**
@@ -19,10 +22,11 @@ public abstract class _FlattenedCircular extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<List<FlattenedCircular>> SIDE1S = Property.create("side1s", List.class);
-    public static final Property<List<FlattenedCircular>> SIDE2S = Property.create("side2s", List.class);
+    public static final ListProperty<FlattenedCircular> SIDE1S = PropertyFactory.createList("side1s", FlattenedCircular.class);
+    public static final ListProperty<FlattenedCircular> SIDE2S = PropertyFactory.createList("side2s", FlattenedCircular.class);
 
 
     protected Object side1s;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
index 1cde2b6..cf46d2c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest1.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest2;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest3;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest4;
@@ -22,14 +26,15 @@ public abstract class _FlattenedTest1 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FT1_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FT1_ID"), Integer.class);
     public static final String FT1_ID_PK_COLUMN = "FT1_ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<FlattenedTest2>> FT2ARRAY = Property.create("ft2Array", List.class);
-    public static final Property<List<FlattenedTest3>> FT3ARRAY = Property.create("ft3Array", List.class);
-    public static final Property<List<FlattenedTest3>> FT3OVER_COMPLEX = Property.create("ft3OverComplex", List.class);
-    public static final Property<List<FlattenedTest4>> FT4ARRAY_FOR1 = Property.create("ft4ArrayFor1", List.class);
-    public static final Property<List<FlattenedTest5>> FT5ARRAY = Property.create("ft5Array", List.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<FlattenedTest2> FT2ARRAY = PropertyFactory.createList("ft2Array", FlattenedTest2.class);
+    public static final ListProperty<FlattenedTest3> FT3ARRAY = PropertyFactory.createList("ft3Array", FlattenedTest3.class);
+    public static final ListProperty<FlattenedTest3> FT3OVER_COMPLEX = PropertyFactory.createList("ft3OverComplex", FlattenedTest3.class);
+    public static final ListProperty<FlattenedTest4> FT4ARRAY_FOR1 = PropertyFactory.createList("ft4ArrayFor1", FlattenedTest4.class);
+    public static final ListProperty<FlattenedTest5> FT5ARRAY = PropertyFactory.createList("ft5Array", FlattenedTest5.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
index ed8921c..4498d64 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest2.java
@@ -6,7 +6,12 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest3;
 
@@ -20,11 +25,12 @@ public abstract class _FlattenedTest2 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FT2_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FT2_ID"), Integer.class);
     public static final String FT2_ID_PK_COLUMN = "FT2_ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<FlattenedTest3>> FT3ARRAY = Property.create("ft3Array", List.class);
-    public static final Property<FlattenedTest1> TO_FT1 = Property.create("toFT1", FlattenedTest1.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<FlattenedTest3> FT3ARRAY = PropertyFactory.createList("ft3Array", FlattenedTest3.class);
+    public static final EntityProperty<FlattenedTest1> TO_FT1 = PropertyFactory.createEntity("toFT1", FlattenedTest1.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
index 1de97ac..494a03d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest3.java
@@ -6,7 +6,12 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest2;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest4;
@@ -21,12 +26,13 @@ public abstract class _FlattenedTest3 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FT3_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FT3_ID"), Integer.class);
     public static final String FT3_ID_PK_COLUMN = "FT3_ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<FlattenedTest4>> FT4ARRAY = Property.create("ft4Array", List.class);
-    public static final Property<FlattenedTest1> TO_FT1 = Property.create("toFT1", FlattenedTest1.class);
-    public static final Property<FlattenedTest2> TO_FT2 = Property.create("toFT2", FlattenedTest2.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<FlattenedTest4> FT4ARRAY = PropertyFactory.createList("ft4Array", FlattenedTest4.class);
+    public static final EntityProperty<FlattenedTest1> TO_FT1 = PropertyFactory.createEntity("toFT1", FlattenedTest1.class);
+    public static final EntityProperty<FlattenedTest2> TO_FT2 = PropertyFactory.createEntity("toFT2", FlattenedTest2.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
index 7bf8825..977870a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest4.java
@@ -5,7 +5,11 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest3;
 
 /**
@@ -18,10 +22,11 @@ public abstract class _FlattenedTest4 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FT4_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FT4_ID"), Integer.class);
     public static final String FT4_ID_PK_COLUMN = "FT4_ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<FlattenedTest3> TO_FT3 = Property.create("toFT3", FlattenedTest3.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final EntityProperty<FlattenedTest3> TO_FT3 = PropertyFactory.createEntity("toFT3", FlattenedTest3.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest5.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest5.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest5.java
index 74f8328..b5a3924 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest5.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_flattened/auto/_FlattenedTest5.java
@@ -5,7 +5,11 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1;
 
 /**
@@ -18,10 +22,11 @@ public abstract class _FlattenedTest5 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> FT5_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("FT5_ID"), Integer.class);
     public static final String FT5_ID_PK_COLUMN = "FT5_ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<FlattenedTest1> TO_FT1 = Property.create("toFT1", FlattenedTest1.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final EntityProperty<FlattenedTest1> TO_FT1 = PropertyFactory.createEntity("toFT1", FlattenedTest1.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
index f016741..24f557c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToMany.java
@@ -6,6 +6,8 @@ import java.io.ObjectOutputStream;
 import java.util.Set;
 
 import org.apache.cayenne.BaseDataObject;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.NumericProperty;
 import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.exp.property.SetProperty;
 import org.apache.cayenne.testdo.relationships_set_to_many.SetToManyTarget;
@@ -20,6 +22,7 @@ public abstract class _SetToMany extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
     public static final SetProperty<SetToManyTarget> TARGETS = PropertyFactory.createSet("targets", SetToManyTarget.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
index b603ad1..4d19a4f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_set_to_many/auto/_SetToManyTarget.java
@@ -5,7 +5,9 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
+import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
 import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_set_to_many.SetToMany;
 
@@ -19,6 +21,7 @@ public abstract class _SetToManyTarget extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
     public static final EntityProperty<SetToMany> SET_TO_MANY = PropertyFactory.createEntity("setToMany", SetToMany.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
index 45fe97f..aa5d2d7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkDep.java
@@ -5,7 +5,11 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkRoot;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyRoot2;
 
@@ -20,12 +24,13 @@ public abstract class _ToManyFkDep extends BaseDataObject {
     private static final long serialVersionUID = 1L; 
 
     public static final String DEP_ID_PK_COLUMN = "DEP_ID";
+    public static final NumericProperty<Integer> OTHER_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("OTHER_ID"), Integer.class);
     public static final String OTHER_ID_PK_COLUMN = "OTHER_ID";
 
-    public static final Property<Integer> DEP_ID = Property.create("depId", Integer.class);
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<ToManyFkRoot> ROOT = Property.create("root", ToManyFkRoot.class);
-    public static final Property<ToManyRoot2> ROOT2 = Property.create("root2", ToManyRoot2.class);
+    public static final NumericProperty<Integer> DEP_ID = PropertyFactory.createNumeric("depId", Integer.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final EntityProperty<ToManyFkRoot> ROOT = PropertyFactory.createEntity("root", ToManyFkRoot.class);
+    public static final EntityProperty<ToManyRoot2> ROOT2 = PropertyFactory.createEntity("root2", ToManyRoot2.class);
 
     protected Integer depId;
     protected String name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
index aa0157b..b4a7a97 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyFkRoot.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkDep;
 
 /**
@@ -19,11 +23,12 @@ public abstract class _ToManyFkRoot extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> DEP_ID = Property.create("depId", Integer.class);
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<ToManyFkDep>> DEPS = Property.create("deps", List.class);
+    public static final NumericProperty<Integer> DEP_ID = PropertyFactory.createNumeric("depId", Integer.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<ToManyFkDep> DEPS = PropertyFactory.createList("deps", ToManyFkDep.class);
 
     protected Integer depId;
     protected String name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
index b950ef2..6ed41ae 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_many_fk/auto/_ToManyRoot2.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkDep;
 
 /**
@@ -19,10 +23,11 @@ public abstract class _ToManyRoot2 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<ToManyFkDep>> DEPS = Property.create("deps", List.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<ToManyFkDep> DEPS = PropertyFactory.createList("deps", ToManyFkDep.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
index 5929024..186524c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK1.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_to_one_fk.ToOneFK2;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _ToOneFK1 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> TO_ONE_FK1_PK_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("TO_ONE_FK1_PK"), Integer.class);
     public static final String TO_ONE_FK1_PK_PK_COLUMN = "TO_ONE_FK1_PK";
 
-    public static final Property<ToOneFK2> TO_PK = Property.create("toPK", ToOneFK2.class);
+    public static final EntityProperty<ToOneFK2> TO_PK = PropertyFactory.createEntity("toPK", ToOneFK2.class);
 
 
     protected Object toPK;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
index 1e98f78..1b6353b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_to_one_fk/auto/_ToOneFK2.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.relationships_to_one_fk.ToOneFK1;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _ToOneFK2 extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> TO_ONE_FK2_PK_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("TO_ONE_FK2_PK"), Integer.class);
     public static final String TO_ONE_FK2_PK_PK_COLUMN = "TO_ONE_FK2_PK";
 
-    public static final Property<ToOneFK1> TO_ONE_TO_FK = Property.create("toOneToFK", ToOneFK1.class);
+    public static final EntityProperty<ToOneFK1> TO_ONE_TO_FK = PropertyFactory.createEntity("toOneToFK", ToOneFK1.class);
 
 
     protected Object toOneToFK;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
index f100857..073f4a6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap1.java
@@ -7,7 +7,12 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.DateProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 
 /**
  * Class _ReturnTypesMap1 was generated by Cayenne.
@@ -19,28 +24,29 @@ public abstract class _ReturnTypesMap1 extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> AAAID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("AAAID"), Integer.class);
     public static final String AAAID_PK_COLUMN = "AAAID";
 
-    public static final Property<Long> BIGINT_COLUMN = Property.create("bigintColumn", Long.class);
-    public static final Property<Boolean> BIT_COLUMN = Property.create("bitColumn", Boolean.class);
-    public static final Property<Boolean> BOOLEAN_COLUMN = Property.create("booleanColumn", Boolean.class);
-    public static final Property<String> CHAR_COLUMN = Property.create("charColumn", String.class);
-    public static final Property<Date> DATE_COLUMN = Property.create("dateColumn", Date.class);
-    public static final Property<BigDecimal> DECIMAL_COLUMN = Property.create("decimalColumn", BigDecimal.class);
-    public static final Property<Double> DOUBLE_COLUMN = Property.create("doubleColumn", Double.class);
-    public static final Property<Float> FLOAT_COLUMN = Property.create("floatColumn", Float.class);
-    public static final Property<Integer> INTEGER_COLUMN = Property.create("integerColumn", Integer.class);
-    public static final Property<String> LONGNVARCHAR_COLUMN = Property.create("longnvarcharColumn", String.class);
-    public static final Property<String> LONGVARCHAR_COLUMN = Property.create("longvarcharColumn", String.class);
-    public static final Property<String> NCHAR_COLUMN = Property.create("ncharColumn", String.class);
-    public static final Property<BigDecimal> NUMERIC_COLUMN = Property.create("numericColumn", BigDecimal.class);
-    public static final Property<String> NVARCHAR_COLUMN = Property.create("nvarcharColumn", String.class);
-    public static final Property<Float> REAL_COLUMN = Property.create("realColumn", Float.class);
-    public static final Property<Short> SMALLINT_COLUMN = Property.create("smallintColumn", Short.class);
-    public static final Property<Date> TIME_COLUMN = Property.create("timeColumn", Date.class);
-    public static final Property<Date> TIMESTAMP_COLUMN = Property.create("timestampColumn", Date.class);
-    public static final Property<Byte> TINYINT_COLUMN = Property.create("tinyintColumn", Byte.class);
-    public static final Property<String> VARCHAR_COLUMN = Property.create("varcharColumn", String.class);
+    public static final NumericProperty<Long> BIGINT_COLUMN = PropertyFactory.createNumeric("bigintColumn", Long.class);
+    public static final BaseProperty<Boolean> BIT_COLUMN = PropertyFactory.createBase("bitColumn", Boolean.class);
+    public static final BaseProperty<Boolean> BOOLEAN_COLUMN = PropertyFactory.createBase("booleanColumn", Boolean.class);
+    public static final StringProperty<String> CHAR_COLUMN = PropertyFactory.createString("charColumn", String.class);
+    public static final DateProperty<Date> DATE_COLUMN = PropertyFactory.createDate("dateColumn", Date.class);
+    public static final NumericProperty<BigDecimal> DECIMAL_COLUMN = PropertyFactory.createNumeric("decimalColumn", BigDecimal.class);
+    public static final NumericProperty<Double> DOUBLE_COLUMN = PropertyFactory.createNumeric("doubleColumn", Double.class);
+    public static final NumericProperty<Float> FLOAT_COLUMN = PropertyFactory.createNumeric("floatColumn", Float.class);
+    public static final NumericProperty<Integer> INTEGER_COLUMN = PropertyFactory.createNumeric("integerColumn", Integer.class);
+    public static final StringProperty<String> LONGNVARCHAR_COLUMN = PropertyFactory.createString("longnvarcharColumn", String.class);
+    public static final StringProperty<String> LONGVARCHAR_COLUMN = PropertyFactory.createString("longvarcharColumn", String.class);
+    public static final StringProperty<String> NCHAR_COLUMN = PropertyFactory.createString("ncharColumn", String.class);
+    public static final NumericProperty<BigDecimal> NUMERIC_COLUMN = PropertyFactory.createNumeric("numericColumn", BigDecimal.class);
+    public static final StringProperty<String> NVARCHAR_COLUMN = PropertyFactory.createString("nvarcharColumn", String.class);
+    public static final NumericProperty<Float> REAL_COLUMN = PropertyFactory.createNumeric("realColumn", Float.class);
+    public static final NumericProperty<Short> SMALLINT_COLUMN = PropertyFactory.createNumeric("smallintColumn", Short.class);
+    public static final DateProperty<Date> TIME_COLUMN = PropertyFactory.createDate("timeColumn", Date.class);
+    public static final DateProperty<Date> TIMESTAMP_COLUMN = PropertyFactory.createDate("timestampColumn", Date.class);
+    public static final NumericProperty<Byte> TINYINT_COLUMN = PropertyFactory.createNumeric("tinyintColumn", Byte.class);
+    public static final StringProperty<String> VARCHAR_COLUMN = PropertyFactory.createString("varcharColumn", String.class);
 
     protected Long bigintColumn;
     protected Boolean bitColumn;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
index a039a48..f24b6b9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMap2.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 
 /**
  * Class _ReturnTypesMap2 was generated by Cayenne.
@@ -17,12 +20,13 @@ public abstract class _ReturnTypesMap2 extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> AAAID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("AAAID"), Integer.class);
     public static final String AAAID_PK_COLUMN = "AAAID";
 
-    public static final Property<byte[]> BINARY_COLUMN = Property.create("binaryColumn", byte[].class);
-    public static final Property<byte[]> BLOB_COLUMN = Property.create("blobColumn", byte[].class);
-    public static final Property<byte[]> LONGVARBINARY_COLUMN = Property.create("longvarbinaryColumn", byte[].class);
-    public static final Property<byte[]> VARBINARY_COLUMN = Property.create("varbinaryColumn", byte[].class);
+    public static final BaseProperty<byte[]> BINARY_COLUMN = PropertyFactory.createBase("binaryColumn", byte[].class);
+    public static final BaseProperty<byte[]> BLOB_COLUMN = PropertyFactory.createBase("blobColumn", byte[].class);
+    public static final BaseProperty<byte[]> LONGVARBINARY_COLUMN = PropertyFactory.createBase("longvarbinaryColumn", byte[].class);
+    public static final BaseProperty<byte[]> VARBINARY_COLUMN = PropertyFactory.createBase("varbinaryColumn", byte[].class);
 
     protected byte[] binaryColumn;
     protected byte[] blobColumn;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
index 4d189f2..fed935c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/return_types/auto/_ReturnTypesMapLobs1.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 
 /**
  * Class _ReturnTypesMapLobs1 was generated by Cayenne.
@@ -17,10 +20,11 @@ public abstract class _ReturnTypesMapLobs1 extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> AAAID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("AAAID"), Integer.class);
     public static final String AAAID_PK_COLUMN = "AAAID";
 
-    public static final Property<String> CLOB_COLUMN = Property.create("clobColumn", String.class);
-    public static final Property<String> NCLOB_COLUMN = Property.create("nclobColumn", String.class);
+    public static final StringProperty<String> CLOB_COLUMN = PropertyFactory.createString("clobColumn", String.class);
+    public static final StringProperty<String> NCLOB_COLUMN = PropertyFactory.createString("nclobColumn", String.class);
 
     protected String clobColumn;
     protected String nclobColumn;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
index ee87549..cdce3d1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/soft_delete/auto/_SoftDelete.java
@@ -5,7 +5,11 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 
 /**
  * Class _SoftDelete was generated by Cayenne.
@@ -17,10 +21,11 @@ public abstract class _SoftDelete extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> DELETED = Property.create("deleted", Boolean.class);
-    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final BaseProperty<Boolean> DELETED = PropertyFactory.createBase("deleted", Boolean.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
 
     protected Boolean deleted;
     protected String name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
index 947ed87..a8929cf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/table_primitives/auto/_TablePrimitives.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 
 /**
  * Class _TablePrimitives was generated by Cayenne.
@@ -17,13 +20,14 @@ public abstract class _TablePrimitives extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Boolean> BOOLEAN_COLUMN = Property.create("booleanColumn", Boolean.class);
-    public static final Property<Integer> INT_COLUMN = Property.create("intColumn", Integer.class);
+    public static final BaseProperty<Boolean> BOOLEAN_COLUMN = PropertyFactory.createBase("booleanColumn", Boolean.class);
+    public static final NumericProperty<Integer> INT_COLUMN = PropertyFactory.createNumeric("intColumn", Integer.class);
 
-    protected boolean booleanColumn;
-    protected int intColumn;
+    protected Boolean booleanColumn;
+    protected Integer intColumn;
 
 
     public void setBooleanColumn(boolean booleanColumn) {
@@ -33,6 +37,9 @@ public abstract class _TablePrimitives extends BaseDataObject {
 
 	public boolean isBooleanColumn() {
         beforePropertyRead("booleanColumn");
+        if(this.booleanColumn == null) {
+            return false;
+        }
         return this.booleanColumn;
     }
 
@@ -43,6 +50,9 @@ public abstract class _TablePrimitives extends BaseDataObject {
 
     public int getIntColumn() {
         beforePropertyRead("intColumn");
+        if(this.intColumn == null) {
+            return 0;
+        }
         return this.intColumn;
     }
 
@@ -70,10 +80,10 @@ public abstract class _TablePrimitives extends BaseDataObject {
 
         switch (propName) {
             case "booleanColumn":
-                this.booleanColumn = val == null ? false : (Boolean)val;
+                this.booleanColumn = (Boolean)val;
                 break;
             case "intColumn":
-                this.intColumn = val == null ? 0 : (Integer)val;
+                this.intColumn = (Integer)val;
                 break;
             default:
                 super.writePropertyDirectly(propName, val);
@@ -91,15 +101,15 @@ public abstract class _TablePrimitives extends BaseDataObject {
     @Override
     protected void writeState(ObjectOutputStream out) throws IOException {
         super.writeState(out);
-        out.writeBoolean(this.booleanColumn);
-        out.writeInt(this.intColumn);
+        out.writeObject(this.booleanColumn);
+        out.writeObject(this.intColumn);
     }
 
     @Override
     protected void readState(ObjectInputStream in) throws IOException, ClassNotFoundException {
         super.readState(in);
-        this.booleanColumn = in.readBoolean();
-        this.intColumn = in.readInt();
+        this.booleanColumn = (Boolean)in.readObject();
+        this.intColumn = (Integer)in.readObject();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Artist.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Artist.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Artist.java
index 8c4ea3d..7324407 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Artist.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/testmap/auto/_Artist.java
@@ -27,8 +27,8 @@ public abstract class _Artist extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Long> ARTIST_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ARTIST_ID"), Long.class);
     public static final String ARTIST_ID_PK_COLUMN = "ARTIST_ID";
-    public static final NumericProperty<Long> ARTIST_ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp(ARTIST_ID_PK_COLUMN), Long.class);
 
     public static final StringProperty<String> ARTIST_NAME = PropertyFactory.createString("artistName", String.class);
     public static final DateProperty<Date> DATE_OF_BIRTH = PropertyFactory.createDate("dateOfBirth", Date.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
index 1620b69..2173ca0 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Bag.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.things.Ball;
 import org.apache.cayenne.testdo.things.Box;
 import org.apache.cayenne.testdo.things.Thing;
@@ -21,12 +25,13 @@ public abstract class _Bag extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Long> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Long.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<List<Ball>> BALLS = Property.create("balls", List.class);
-    public static final Property<List<Box>> BOXES = Property.create("boxes", List.class);
-    public static final Property<List<Thing>> THINGS = Property.create("things", List.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final ListProperty<Ball> BALLS = PropertyFactory.createList("balls", Ball.class);
+    public static final ListProperty<Box> BOXES = PropertyFactory.createList("boxes", Box.class);
+    public static final ListProperty<Thing> THINGS = PropertyFactory.createList("things", Thing.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
index 4114014..fcd2d1b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Ball.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.things.Box;
 import org.apache.cayenne.testdo.things.Thing;
 
@@ -19,12 +22,13 @@ public abstract class _Ball extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Long> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Long.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> THING_VOLUME = Property.create("thingVolume", Integer.class);
-    public static final Property<Integer> THING_WEIGHT = Property.create("thingWeight", Integer.class);
-    public static final Property<Box> BOX = Property.create("box", Box.class);
-    public static final Property<Thing> THING = Property.create("thing", Thing.class);
+    public static final NumericProperty<Integer> THING_VOLUME = PropertyFactory.createNumeric("thingVolume", Integer.class);
+    public static final NumericProperty<Integer> THING_WEIGHT = PropertyFactory.createNumeric("thingWeight", Integer.class);
+    public static final EntityProperty<Box> BOX = PropertyFactory.createEntity("box", Box.class);
+    public static final EntityProperty<Thing> THING = PropertyFactory.createEntity("thing", Thing.class);
 
     protected Integer thingVolume;
     protected Integer thingWeight;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
index af9be5c..81e8d42 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Box.java
@@ -6,7 +6,12 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.things.Bag;
 import org.apache.cayenne.testdo.things.Ball;
 import org.apache.cayenne.testdo.things.BoxInfo;
@@ -22,13 +27,14 @@ public abstract class _Box extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Long> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Long.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> NAME = Property.create("name", String.class);
-    public static final Property<Bag> BAG = Property.create("bag", Bag.class);
-    public static final Property<List<Ball>> BALLS = Property.create("balls", List.class);
-    public static final Property<BoxInfo> BOX_INFO = Property.create("boxInfo", BoxInfo.class);
-    public static final Property<List<Thing>> THINGS = Property.create("things", List.class);
+    public static final StringProperty<String> NAME = PropertyFactory.createString("name", String.class);
+    public static final EntityProperty<Bag> BAG = PropertyFactory.createEntity("bag", Bag.class);
+    public static final ListProperty<Ball> BALLS = PropertyFactory.createList("balls", Ball.class);
+    public static final EntityProperty<BoxInfo> BOX_INFO = PropertyFactory.createEntity("boxInfo", BoxInfo.class);
+    public static final ListProperty<Thing> THINGS = PropertyFactory.createList("things", Thing.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
index b96394c..367e65a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_BoxInfo.java
@@ -5,7 +5,11 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.things.Box;
 
 /**
@@ -18,10 +22,11 @@ public abstract class _BoxInfo extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Long> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Long.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> COLOR = Property.create("color", String.class);
-    public static final Property<Box> BOX = Property.create("box", Box.class);
+    public static final StringProperty<String> COLOR = PropertyFactory.createString("color", String.class);
+    public static final EntityProperty<Box> BOX = PropertyFactory.createEntity("box", Box.class);
 
     protected String color;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
index 9da8fa5..b0b9322 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/things/auto/_Thing.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.things.Ball;
 import org.apache.cayenne.testdo.things.Box;
 
@@ -20,12 +24,13 @@ public abstract class _Thing extends CayenneDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Long> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Long.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<Integer> VOLUME = Property.create("volume", Integer.class);
-    public static final Property<Integer> WEIGHT = Property.create("weight", Integer.class);
-    public static final Property<Ball> BALL = Property.create("ball", Ball.class);
-    public static final Property<List<Box>> BOX = Property.create("box", List.class);
+    public static final NumericProperty<Integer> VOLUME = PropertyFactory.createNumeric("volume", Integer.class);
+    public static final NumericProperty<Integer> WEIGHT = PropertyFactory.createNumeric("weight", Integer.class);
+    public static final EntityProperty<Ball> BALL = PropertyFactory.createEntity("ball", Ball.class);
+    public static final ListProperty<Box> BOX = PropertyFactory.createList("box", Box.class);
 
     protected Integer volume;
     protected Integer weight;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
index 9a33de6..e1bf364 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneDep.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.toone.TooneMaster;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _TooneDep extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<TooneMaster> TO_MASTER = Property.create("toMaster", TooneMaster.class);
+    public static final EntityProperty<TooneMaster> TO_MASTER = PropertyFactory.createEntity("toMaster", TooneMaster.class);
 
 
     protected Object toMaster;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
index 8d9858f..0b29892 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/toone/auto/_TooneMaster.java
@@ -5,7 +5,10 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.EntityProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.testdo.toone.TooneDep;
 
 /**
@@ -18,9 +21,10 @@ public abstract class _TooneMaster extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<TooneDep> TO_DEPENDENT = Property.create("toDependent", TooneDep.class);
+    public static final EntityProperty<TooneDep> TO_DEPENDENT = PropertyFactory.createEntity("toDependent", TooneDep.class);
 
 
     protected Object toDependent;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
index 8b903d6..ac5e231 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Customer.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.unsupported_distinct_types.Product;
 
 /**
@@ -19,10 +23,11 @@ public abstract class _Customer extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> LONGVARCHAR_COL = Property.create("longvarcharCol", String.class);
-    public static final Property<List<Product>> ORDER = Property.create("order", List.class);
+    public static final StringProperty<String> LONGVARCHAR_COL = PropertyFactory.createString("longvarcharCol", String.class);
+    public static final ListProperty<Product> ORDER = PropertyFactory.createList("order", Product.class);
 
     protected String longvarcharCol;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
index 821705f..54189bb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/unsupported_distinct_types/auto/_Product.java
@@ -6,7 +6,11 @@ import java.io.ObjectOutputStream;
 import java.util.List;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.ListProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 import org.apache.cayenne.testdo.unsupported_distinct_types.Customer;
 import org.apache.cayenne.testdo.unsupported_distinct_types.Product;
 
@@ -20,12 +24,13 @@ public abstract class _Product extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<String> LONGVARCHAR_COL = Property.create("longvarcharCol", String.class);
-    public static final Property<List<Product>> BASE = Property.create("base", List.class);
-    public static final Property<List<Product>> CONTAINED = Property.create("contained", List.class);
-    public static final Property<List<Customer>> ORDER_BY = Property.create("orderBy", List.class);
+    public static final StringProperty<String> LONGVARCHAR_COL = PropertyFactory.createString("longvarcharCol", String.class);
+    public static final ListProperty<Product> BASE = PropertyFactory.createList("base", Product.class);
+    public static final ListProperty<Product> CONTAINED = PropertyFactory.createList("contained", Product.class);
+    public static final ListProperty<Customer> ORDER_BY = PropertyFactory.createList("orderBy", Customer.class);
 
     protected String longvarcharCol;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
index a3bd685..c8fd62e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidPkEntity.java
@@ -6,7 +6,10 @@ import java.io.ObjectOutputStream;
 import java.util.UUID;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
+import org.apache.cayenne.exp.property.StringProperty;
 
 /**
  * Class _UuidPkEntity was generated by Cayenne.
@@ -20,7 +23,7 @@ public abstract class _UuidPkEntity extends BaseDataObject {
 
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<UUID> ID = Property.create("id", UUID.class);
+    public static final BaseProperty<UUID> ID = PropertyFactory.createBase("id", UUID.class);
 
     protected UUID id;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/56b64c35/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
index 08da08c..a15e70b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/uuid/auto/_UuidTestEntity.java
@@ -6,7 +6,10 @@ import java.io.ObjectOutputStream;
 import java.util.UUID;
 
 import org.apache.cayenne.BaseDataObject;
-import org.apache.cayenne.exp.Property;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.exp.property.BaseProperty;
+import org.apache.cayenne.exp.property.NumericProperty;
+import org.apache.cayenne.exp.property.PropertyFactory;
 
 /**
  * Class _UuidTestEntity was generated by Cayenne.
@@ -18,9 +21,10 @@ public abstract class _UuidTestEntity extends BaseDataObject {
 
     private static final long serialVersionUID = 1L; 
 
+    public static final NumericProperty<Integer> ID_PK_PROPERTY = PropertyFactory.createNumeric(ExpressionFactory.dbPathExp("ID"), Integer.class);
     public static final String ID_PK_COLUMN = "ID";
 
-    public static final Property<UUID> UUID = Property.create("uuid", UUID.class);
+    public static final BaseProperty<UUID> UUID = PropertyFactory.createBase("uuid", UUID.class);
 
     protected UUID uuid;
 


Mime
View raw message