You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2022/02/01 09:03:37 UTC

[empire-db] branch version3 updated: EMPIREDB-362 Bean interface fix

This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch version3
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/version3 by this push:
     new a61d348  EMPIREDB-362 Bean interface fix
a61d348 is described below

commit a61d34860aa71ad84a8de95c25e5115806ead2da
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Tue Feb 1 10:03:34 2022 +0100

    EMPIREDB-362 Bean interface fix
---
 .../main/java/org/apache/empire/samples/db/SampleApp.java    |  1 -
 .../java/org/apache/empire/samples/db/beans/Department.java  |  9 ++++-----
 .../java/org/apache/empire/samples/db/beans/Employee.java    | 12 ++++++------
 .../java/org/apache/empire/samples/db/beans/Payment.java     |  7 ++++---
 empire-db/src/main/java/org/apache/empire/db/DBUtils.java    | 12 +++++-------
 empire-db/src/main/java/org/apache/empire/db/list/Bean.java  |  7 ++++---
 6 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java
index 4ae69db..15ef03c 100644
--- a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java
+++ b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java
@@ -718,7 +718,6 @@ public class SampleApp
 	    cmd.where(EMP.GENDER.is(Gender.M));
 	    cmd.orderBy(EMP.LASTNAME.desc());
 	    List<Employee> list = context.getUtils().queryBeanList(cmd, Employee.class, null);
-	    
 	    for (Employee emp : list)
 	    {
 	        
diff --git a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
index 6e305cc..a9b8810 100644
--- a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
+++ b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Department.java
@@ -21,11 +21,11 @@ package org.apache.empire.samples.db.beans;
 import java.util.List;
 
 import org.apache.empire.db.DBCommand;
-import org.apache.empire.db.DBRecordData;
+import org.apache.empire.db.DBContext;
 import org.apache.empire.db.list.Bean;
 import org.apache.empire.samples.db.SampleDB;
 
-public class Department implements Bean
+public class Department implements Bean<SampleDB>
 {
     private long   id;     // "ID" 
     private String name;   // "FIRSTNAME"
@@ -64,13 +64,12 @@ public class Department implements Bean
     }
     
     @Override
-    public void onBeanLoaded(DBRecordData dataRow, int rownum, Object parent)
+    public void onBeanLoaded(SampleDB db, DBContext context, int rownum, Object parent)
     {
-        SampleDB db = (SampleDB)dataRow.getDatabase();
         DBCommand cmd = db.createCommand();
         cmd.where(db.EMPLOYEES.DEPARTMENT_ID.is(this.id));
         cmd.orderBy(db.EMPLOYEES.FIRSTNAME, db.EMPLOYEES.LASTNAME);
-        employees = dataRow.getContext().getUtils().queryBeanList(cmd, Employee.class, this);
+        employees = context.getUtils().queryBeanList(cmd, Employee.class, this);
     }
     
 }
diff --git a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
index 9942b8f..2df7e43 100644
--- a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
+++ b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Employee.java
@@ -26,7 +26,8 @@ import java.util.Locale;
 
 import org.apache.empire.commons.DateUtils;
 import org.apache.empire.db.DBCommand;
-import org.apache.empire.db.DBRecordData;
+import org.apache.empire.db.DBContext;
+import org.apache.empire.db.DBRecord;
 import org.apache.empire.db.list.Bean;
 import org.apache.empire.samples.db.SampleDB;
 
@@ -35,7 +36,7 @@ import org.apache.empire.samples.db.SampleDB;
  * @author doebele
  *
  */
-public class Employee implements Bean
+public class Employee implements Bean<SampleDB>
 {
     private int    rownum;      // rownum
     private long   id;          // "ID" 
@@ -227,19 +228,18 @@ public class Employee implements Bean
     }
 
     @Override
-    public void onBeanLoaded(DBRecordData dataRow, int rownum, Object parent)
+    public void onBeanLoaded(SampleDB db, DBContext context, int rownum, Object parent)
     {
         if (parent instanceof Department)
             department = ((Department)parent); 
         // don't!
-        // else department = context.getUtils().queryBean(Department.class, DBRecord.key(this.departmentId));
+        else department = context.getUtils().queryBean(Department.class, db.DEPARTMENTS, DBRecord.key(this.departmentId));
         
-        SampleDB db = (SampleDB)dataRow.getDatabase();
         DBCommand cmd = db.createCommand();
         cmd.where(db.PAYMENTS.EMPLOYEE_ID.is(this.id));
         cmd.orderBy(db.PAYMENTS.YEAR.desc());
         cmd.orderBy(db.PAYMENTS.MONTH.desc());
-        payments = dataRow.getContext().getUtils().queryBeanList(cmd, Payment.class, this);
+        payments = context.getUtils().queryBeanList(cmd, Payment.class, this);
     }
 
 }
diff --git a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Payment.java b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Payment.java
index c4f917b..831fbe4 100644
--- a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Payment.java
+++ b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/beans/Payment.java
@@ -20,10 +20,11 @@ package org.apache.empire.samples.db.beans;
 
 import java.math.BigDecimal;
 
-import org.apache.empire.db.DBRecordData;
+import org.apache.empire.db.DBContext;
 import org.apache.empire.db.list.Bean;
+import org.apache.empire.samples.db.SampleDB;
 
-public class Payment implements Bean
+public class Payment implements Bean<SampleDB>
 {
     private long        employeeId;
     private BigDecimal  year;
@@ -67,7 +68,7 @@ public class Payment implements Bean
     }
 
     @Override
-    public void onBeanLoaded(DBRecordData dataRow, int rownum, Object parent)
+    public void onBeanLoaded(SampleDB db, DBContext context, int rownum, Object parent)
     {
         if (parent instanceof Employee)
             this.employee = (Employee)parent;
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
index 27d2c55..07baca1 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
@@ -981,8 +981,8 @@ public class DBUtils implements DBContextAware
                 if (item==null)
                     continue;
                 // post processing
-                if (item instanceof Bean)
-                    ((Bean)item).onBeanLoaded(r, rownum, parent);
+                if (item instanceof Bean<?>)
+                    ((Bean<?>)item).onBeanLoaded(r.getDatabase(), context, rownum, parent);
                 // add entry
                 list.add(item);
                 // Decrease count
@@ -1050,7 +1050,6 @@ public class DBUtils implements DBContextAware
      */
     public <T> T queryBean(DBCommand cmd, DBBeanListFactory<T> factory)
     {
-        List<T> list = null;
         DBReader r = new DBReader(context);
         try
         {   // prepare
@@ -1060,8 +1059,8 @@ public class DBUtils implements DBContextAware
             // add data
             T item = factory.newItem(-1, r);
             // post processing
-            if (item instanceof Bean)
-                ((Bean)item).onBeanLoaded(r, -1, null);
+            if (item instanceof Bean<?>)
+                ((Bean<?>)item).onBeanLoaded(r.getDatabase(), context, -1, null);
             // done
             return item;
         }
@@ -1069,8 +1068,7 @@ public class DBUtils implements DBContextAware
         {
             r.close();
             // complete
-            if (list!=null)
-                factory.completeQuery(list);
+            factory.completeQuery(null);
         }
     }
 
diff --git a/empire-db/src/main/java/org/apache/empire/db/list/Bean.java b/empire-db/src/main/java/org/apache/empire/db/list/Bean.java
index 0664c58..0cc939f 100644
--- a/empire-db/src/main/java/org/apache/empire/db/list/Bean.java
+++ b/empire-db/src/main/java/org/apache/empire/db/list/Bean.java
@@ -18,9 +18,10 @@
  */
 package org.apache.empire.db.list;
 
-import org.apache.empire.db.DBRecordData;
+import org.apache.empire.db.DBContext;
+import org.apache.empire.db.DBDatabase;
 
-public interface Bean
+public interface Bean<DB extends DBDatabase>
 {
-    void onBeanLoaded(DBRecordData dataRow, int rownum, Object parent);
+    void onBeanLoaded(DB db, DBContext context, int rownum, Object parent);
 }