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

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


The following commit(s) were added to refs/heads/master by this push:
     new 20ae33a  EMPIREDB-362 Advanced example improvments and new overloads
20ae33a is described below

commit 20ae33a52acae71ba5c19415cbec2bee1d10ae0c
Author: Rainer Döbele <[email protected]>
AuthorDate: Mon Feb 28 18:25:36 2022 +0100

    EMPIREDB-362 Advanced example improvments and new overloads
---
 .../empire/samples/db/advanced/SampleAdvApp.java   | 22 +++++++++++-----------
 .../empire/samples/db/advanced/db/CarSalesDB.java  |  4 ++--
 .../samples/db/advanced/records/ModelRecord.java   |  2 +-
 .../org/apache/empire/data/list/DataListEntry.java | 11 +++++++++++
 .../main/java/org/apache/empire/db/DBUtils.java    | 16 ++++++++++++++++
 5 files changed, 41 insertions(+), 14 deletions(-)

diff --git 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
index c5803bb..118df1c 100644
--- 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
+++ 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
@@ -313,13 +313,13 @@ public class SampleAdvApp
         List<Long> dealerIdList = 
context.getUtils().querySimpleList(Long.class, cmd);
         // get all models
         cmd.clear();
-        cmd.select(db.MODEL.ID, db.MODEL.CONFIG_NAME, db.MODEL.BASE_PRICE);  
// select the ones we need (optional)
+        cmd.select(db.MODEL.ID, db.MODEL.SPECIFICATION, db.MODEL.BASE_PRICE);  
// select the ones we need (optional)
         // no constraints on model
         List<DataListEntry> modelList = context.getUtils().queryDataList(cmd);
         for (DataListEntry model : modelList)
         {
             int count = generateRandomSales(batch, model, dealerIdList);
-            log.info("{} Sales added for Model {}", count, 
model.getString(db.MODEL.CONFIG_NAME));
+            log.info("{} Sales added for Model {}", count, 
model.getString(db.MODEL.SPECIFICATION));
         }
         // execute the batch
         int count = batch.executeBatch();
@@ -436,7 +436,7 @@ public class SampleAdvApp
         
         // create command
         DBCommand cmd = context.createCommand()
-           .select(MODEL.CONFIG_NAME, q.column(SALES.count()))
+           .select(MODEL.SPECIFICATION, q.column(SALES.count()))
            .join(MODEL.ID, q.column(SALES.MODEL_ID));
         
         List<DataListEntry> list = context.getUtils().queryDataList(cmd);
@@ -456,20 +456,20 @@ public class SampleAdvApp
 
         // .selectQualified(BRAND.NAME, MODEL.CONFIG_NAME) 
         
-        // create command
+        // create a command
         DBCommand cmd = context.createCommand()
-           .select  (BRAND.NAME, MODEL.CONFIG_NAME, MODEL.BASE_PRICE)
+           .select  (BRAND.NAME, MODEL.SPECIFICATION, MODEL.BASE_PRICE)
            .select  (SALES.MODEL_ID.count(), SALES.PRICE.avg())
            .select  
(SALES.PRICE.avg().minus(MODEL.BASE_PRICE.avg()).round(2).as("DIFFERENCE"))
            .join    (MODEL.WMI, BRAND.WMI)
            .joinLeft(MODEL.ID, SALES.MODEL_ID, SALES.YEAR.is(2021))  // only 
year 2021
            .where   (MODEL.ENGINE_TYPE.in(EngineType.P, EngineType.H, 
EngineType.E)) // Petrol, Hybrid, Electric
            .where   (MODEL.BASE_PRICE.isGreaterThan(30000))
-           .groupBy (BRAND.NAME, MODEL.CONFIG_NAME, MODEL.BASE_PRICE)
+           .groupBy (BRAND.NAME, MODEL.SPECIFICATION, MODEL.BASE_PRICE)
            .having  (SALES.MODEL_ID.count().isGreaterThan(5))   // more than 5 
sales
-           .orderBy (BRAND.NAME.desc(), MODEL.CONFIG_NAME.asc());
+           .orderBy (BRAND.NAME.desc(), MODEL.SPECIFICATION.asc());
              
-        // Returns a list of Java beans (needs matching fields constructor or 
setter methods)           
+        // Return a list of Java beans (needs matching fields constructor or 
setter methods)           
         // This is just one of several options to obtain an process query 
results          
         List<QueryResult> list = context.getUtils().queryBeanList(cmd, 
QueryResult.class, null);
         log.info("queryBeanList returnes {} items", list.size());
@@ -501,11 +501,11 @@ public class SampleAdvApp
         DBCmdParam engineTypeParam = cmd.addParam();
                 
         // create the command
-        cmd.select  (BRAND.NAME, MODEL.CONFIG_NAME, MODEL.BASE_PRICE, 
MODEL.ENGINE_TYPE, MODEL.ENGINE_POWER)
+        cmd.select  (BRAND.NAME, MODEL.SPECIFICATION, MODEL.BASE_PRICE, 
MODEL.ENGINE_TYPE, MODEL.ENGINE_POWER)
            .join    (MODEL.WMI, BRAND.WMI)
            .where   (BRAND.NAME.is(brandParam))
            .where   (MODEL.ENGINE_TYPE.is(engineTypeParam))
-           .orderBy (BRAND.NAME.desc(), MODEL.CONFIG_NAME.asc());
+           .orderBy (BRAND.NAME.desc(), MODEL.SPECIFICATION.asc());
 
         // set the params
         brandParam.setValue("Tesla");
@@ -852,7 +852,7 @@ public class SampleAdvApp
         model.create()
             .set(MODEL.WMI             , "WVW")  // = Volkswagen
             .set(MODEL.NAME            , "ID.4")
-            .set(MODEL.CONFIG_NAME     , "ID.4 Pro Performance 150 kW 77 kWh")
+            .set(MODEL.SPECIFICATION     , "ID.4 Pro Performance 150 kW 77 
kWh")
             .set(MODEL.TRIM            , "Pro")
             .set(MODEL.ENGINE_TYPE     , EngineType.E)
             .set(MODEL.ENGINE_POWER    , 204);
diff --git 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/db/CarSalesDB.java
 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/db/CarSalesDB.java
index 75e0eaa..1244e0d 100644
--- 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/db/CarSalesDB.java
+++ 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/db/CarSalesDB.java
@@ -128,7 +128,7 @@ public class CarSalesDB extends TDatabase<CarSalesDB>
     {
         public final DBTableColumn ID;
         public final DBTableColumn NAME;
-        public final DBTableColumn CONFIG_NAME;
+        public final DBTableColumn SPECIFICATION;
         public final DBTableColumn WMI;
         public final DBTableColumn TRIM;
         public final DBTableColumn ENGINE_TYPE;
@@ -143,7 +143,7 @@ public class CarSalesDB extends TDatabase<CarSalesDB>
             // ID
             ID              = addIdentity  ("ID",               
"MODEL_ID_SEQUENCE");  // Optional Sequence name for some DBMS (e.g. Oracle)
             NAME            = addColumn    ("NAME",             
DataType.VARCHAR,     20, true);
-            CONFIG_NAME     = addColumn    ("CONFIGURATION",    
DataType.VARCHAR,     40, true);
+            SPECIFICATION   = addColumn    ("SPECIFICATION",    
DataType.VARCHAR,     40, true);
             WMI             = addForeignKey("WMI",              db.BRAND,      
           true);
             TRIM            = addColumn    ("TRIM",             
DataType.VARCHAR,     20, true);
             ENGINE_TYPE     = addColumn    ("ENGINE_TYPE",      DataType.CHAR, 
        1, true, EngineType.class);
diff --git 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/records/ModelRecord.java
 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/records/ModelRecord.java
index 239fc00..446bb72 100644
--- 
a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/records/ModelRecord.java
+++ 
b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/records/ModelRecord.java
@@ -20,7 +20,7 @@ public class ModelRecord extends TRecord<CarSalesDB.Model>
         create();
         set(T.WMI             , brand);
         set(T.NAME            , modelName);
-        set(T.CONFIG_NAME     , configName);
+        set(T.SPECIFICATION   , configName);
         set(T.TRIM            , trim);
         set(T.ENGINE_TYPE     , engineType);
         set(T.ENGINE_POWER    , enginePower);
diff --git 
a/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java 
b/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
index 254b66c..20e4f2b 100644
--- a/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
+++ b/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
@@ -266,6 +266,17 @@ public class DataListEntry implements RecordData, 
Serializable
         return getInt(indexOf(column));
     }
 
+    public long getLong(int index)
+    {   // Get Long value
+        Object o = getValue(index);
+        return ObjectUtils.getLong(o);
+    }
+    
+    public final long getLong(ColumnExpr column)
+    {
+        return getLong(indexOf(column));
+    }
+
     public BigDecimal getDecimal(int index)
     {   // Get Integer value
         Object o = getValue(index);
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 2e1fda8..84dd12b 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
@@ -772,10 +772,26 @@ public class DBUtils implements DBContextAware
     /**
      * Queries a list of DataListEntry items
      */
+    public final <T extends DataListEntry> List<T> queryDataList(DBCommandExpr 
cmd, Class<T> entryClass, int first, int maxItems)
+    {
+        return queryDataList(cmd, createDefaultDataListFactory(entryClass, 
createDefaultDataListHead(cmd, entryClass)), first, maxItems);
+    }
+    
+    /**
+     * Queries a list of DataListEntry items
+     */
     public final List<DataListEntry> queryDataList(DBCommandExpr cmd)
     {
         return queryDataList(cmd, DataListEntry.class);
     }
+    
+    /**
+     * Queries a list of DataListEntry items
+     */
+    public final List<DataListEntry> queryDataList(DBCommandExpr cmd, int 
first, int maxItems)
+    {
+        return queryDataList(cmd, DataListEntry.class, first, maxItems);
+    }
 
     /**
      * Queries a single DataListEntry item

Reply via email to