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 3ef9f562 EMPIREDB-456: EnumType: setEnumOptions param type changed 
from Class<?> to Class<? extends Enum<?>>
3ef9f562 is described below

commit 3ef9f5620a02b5ad567e245ca05ca6b53e46c06f
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Mar 13 16:36:01 2025 +0100

    EMPIREDB-456:
    EnumType: setEnumOptions param type changed from Class<?> to Class<? 
extends Enum<?>>
---
 empire-db/src/main/java/org/apache/empire/commons/Options.java  | 7 +++----
 empire-db/src/main/java/org/apache/empire/db/DBTable.java       | 5 +++--
 empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java | 2 +-
 empire-db/src/main/java/org/apache/empire/db/DBView.java        | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/empire-db/src/main/java/org/apache/empire/commons/Options.java 
b/empire-db/src/main/java/org/apache/empire/commons/Options.java
index 01d1fc28..54cba68a 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/Options.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/Options.java
@@ -187,13 +187,12 @@ public class Options extends AbstractSet<OptionEntry> 
implements Cloneable, Seri
         }
     }
     
-    public Options(Class<?> enumType)
+    public Options(Class<? extends Enum<?>> enumType)
     {   // must be an enum
-        if (enumType==null || !enumType.isEnum())
+        if (enumType==null)
             throw new InvalidArgumentException("enumType", enumType);
         // create options from enum
-        @SuppressWarnings("unchecked")
-        Enum<?>[] items = ((Class<Enum<?>>)enumType).getEnumConstants();
+        Enum<?>[] items = enumType.getEnumConstants();
         this.list = new ArrayList<OptionEntry>(items.length);
         for (int i=0; i<items.length; i++)
         {
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBTable.java 
b/empire-db/src/main/java/org/apache/empire/db/DBTable.java
index 350aeb92..034d81f0 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBTable.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBTable.java
@@ -370,7 +370,7 @@ public class DBTable extends DBRowSet implements Cloneable
      * @param enumType  the class of the enum type
      * @return the new column object 
      */
-    public final DBTableColumn addColumn(String columnName, DataType type, 
double size, boolean required, Class<?> enumType)
+    public final DBTableColumn addColumn(String columnName, DataType type, 
double size, boolean required, Class<? extends Enum<?>> enumType)
     {
         if (!enumType.isEnum())
         {   // Class must be an enum type
@@ -393,12 +393,13 @@ public class DBTable extends DBRowSet implements Cloneable
      * @param enumValue the default value
      * @return the new column object 
      */
+    @SuppressWarnings("unchecked")
     public final DBTableColumn addColumn(String columnName, DataType type, 
double size, boolean required, Enum<?> enumValue)
     { 
         Object defValue = ObjectUtils.convertValue(type, enumValue);
         DBTableColumn col = this.createAndAppendColumn(columnName, type, size, 
required, defValue);
         if (enumValue!=null)
-            col.setEnumOptions(enumValue.getClass());
+            col.setEnumOptions((Class<Enum<?>>)enumValue.getClass());
         return col;
     }
     
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java 
b/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
index b0106e75..4621abb2 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
@@ -322,7 +322,7 @@ public class DBTableColumn extends DBColumn
      * sets the options from an enum class
      * @param enumType the enum type
      */
-    public void setEnumOptions(Class<?> enumType)
+    public void setEnumOptions(Class<? extends Enum<?>> enumType)
     {
         // Enum special treatment
         log.debug("Adding enum options of type {} for column {}.", 
enumType.getName(), getName());            
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBView.java 
b/empire-db/src/main/java/org/apache/empire/db/DBView.java
index b8324e2f..5189dc2b 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBView.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBView.java
@@ -222,7 +222,7 @@ public abstract class DBView extends DBRowSet implements 
Cloneable
          * sets the options from an enum class
          * @param enumType the enum type
          */
-        public void setEnumOptions(Class<?> enumType)
+        public void setEnumOptions(Class<? extends Enum<?>> enumType)
         {
             // Enum special treatment
             log.debug("Adding enum options of type {} for column {}.", 
enumType.getName(), getName());            

Reply via email to