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 bc365598 EMPIREDB-431 ObjectUtils: listToArray fix
bc365598 is described below

commit bc36559890f22e3df7084b145b0a98a7d1f1e337
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Dec 5 20:46:14 2024 +0100

    EMPIREDB-431
    ObjectUtils: listToArray fix
---
 .../empire/jakarta/components/SelectTag.java       | 38 ++++++++--------------
 .../apache/empire/jsf2/components/SelectTag.java   | 16 ++-------
 .../org/apache/empire/commons/ObjectUtils.java     |  2 +-
 .../main/java/org/apache/empire/db/DBRowSet.java   |  9 +++++
 4 files changed, 27 insertions(+), 38 deletions(-)

diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
index 726c1fd0..ca947745 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
@@ -22,16 +22,6 @@ import java.io.IOException;
 import java.util.Locale;
 import java.util.Map;
 
-import jakarta.el.ValueExpression;
-import jakarta.faces.component.NamingContainer;
-import jakarta.faces.component.UIInput;
-import jakarta.faces.component.UISelectOne;
-import jakarta.faces.component.html.HtmlSelectOneListbox;
-import jakarta.faces.component.html.HtmlSelectOneMenu;
-import jakarta.faces.component.visit.VisitCallback;
-import jakarta.faces.component.visit.VisitContext;
-import jakarta.faces.context.FacesContext;
-
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.commons.OptionEntry;
 import org.apache.empire.commons.Options;
@@ -43,15 +33,24 @@ import org.apache.empire.jakarta.app.FacesUtils;
 import org.apache.empire.jakarta.app.TextResolver;
 import org.apache.empire.jakarta.controls.InputAttachedObjectsHandler;
 import org.apache.empire.jakarta.controls.InputControl;
-import org.apache.empire.jakarta.controls.InputControlManager;
-import org.apache.empire.jakarta.controls.SelectInputControl;
 import org.apache.empire.jakarta.controls.InputControl.DisabledType;
 import org.apache.empire.jakarta.controls.InputControl.InputInfo;
+import org.apache.empire.jakarta.controls.InputControlManager;
+import org.apache.empire.jakarta.controls.SelectInputControl;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import jakarta.faces.component.NamingContainer;
+import jakarta.faces.component.UIInput;
+import jakarta.faces.component.UISelectOne;
+import jakarta.faces.component.html.HtmlSelectOneListbox;
+import jakarta.faces.component.html.HtmlSelectOneMenu;
+import jakarta.faces.component.visit.VisitCallback;
+import jakarta.faces.component.visit.VisitContext;
+import jakarta.faces.context.FacesContext;
+
 public class SelectTag extends UIInput implements NamingContainer
 {
     // Logger
@@ -180,25 +179,16 @@ public class SelectTag extends UIInput implements 
NamingContainer
         @Override
         public Object getAttribute(String name)
         {
-            return null;
+            Object value = SelectTag.this.getAttributes().get(name);
+            return value;
         }
 
         @Override
         public Object getAttributeEx(String name)
         {
-            Object value = SelectTag.this.getAttributes().get(name);
-            if (value==null)
-            {   // try value expression
-                ValueExpression ve = SelectTag.this.getValueExpression(name);
-                if (ve!=null)
-                {   // It's a value expression
-                    FacesContext ctx = FacesContext.getCurrentInstance();
-                    value = ve.getValue(ctx.getELContext());
-                }
-            }
+            Object value = getAttribute(name);
             return value;
         }
-        
     }
     
     private SelectInputInfo selectInputInfo = new SelectInputInfo();
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
index 8bf76e7e..06331bb2 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.util.Locale;
 import java.util.Map;
 
-import javax.el.ValueExpression;
 import javax.faces.component.NamingContainer;
 import javax.faces.component.UIInput;
 import javax.faces.component.UISelectOne;
@@ -180,25 +179,16 @@ public class SelectTag extends UIInput implements 
NamingContainer
         @Override
         public Object getAttribute(String name)
         {
-            return null;
+            Object value = SelectTag.this.getAttributes().get(name);
+            return value;
         }
 
         @Override
         public Object getAttributeEx(String name)
         {
-            Object value = SelectTag.this.getAttributes().get(name);
-            if (value==null)
-            {   // try value expression
-                ValueExpression ve = SelectTag.this.getValueExpression(name);
-                if (ve!=null)
-                {   // It's a value expression
-                    FacesContext ctx = FacesContext.getCurrentInstance();
-                    value = ve.getValue(ctx.getELContext());
-                }
-            }
+            Object value = getAttribute(name);
             return value;
         }
-        
     }
     
     private SelectInputInfo selectInputInfo = new SelectInputInfo();
diff --git a/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java 
b/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
index 79f8187d..48eea049 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
@@ -728,7 +728,7 @@ public final class ObjectUtils
      * @return the array
      */
     @SuppressWarnings("unchecked")
-    public static <T> T[] listToArray(Class<? extends T[]> type, List<T> list)
+    public static <T> T[] listToArray(Class<? extends T[]> type, List<? 
extends T> list)
     {
         if (list==null)
             return null;
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java 
b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
index 564c730c..b87cb26d 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
@@ -409,6 +409,15 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
         return Collections.unmodifiableList(columns);
     }
 
+    /**
+     * Gets all columns of this rowset as an array
+     * @return all columns of this rowset
+     */
+    public DBColumn[] getAllColumns()
+    {
+        return ObjectUtils.listToArray(DBColumn[].class, columns);
+    }
+
     /**
      * Gets the index of a particular column expression.
      * @param column column the DBColumn to get the index for

Reply via email to