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 9e92f755 EMPIREDB-442 DBQuery not updateable by default. DBViewColumn
not readonly by default.
9e92f755 is described below
commit 9e92f7554cbeb53f628c4a3ec1f6412e01c6eae0
Author: Rainer Döbele <[email protected]>
AuthorDate: Tue Oct 22 09:17:34 2024 +0200
EMPIREDB-442
DBQuery not updateable by default. DBViewColumn not readonly by default.
---
.../apache/empire/jakarta/utils/TagEncodingHelper.java | 13 ++++++-------
.../apache/empire/jsf2/utils/TagEncodingHelper.java | 13 ++++++-------
.../src/main/java/org/apache/empire/db/DBQuery.java | 18 ++++++++++++++++--
.../src/main/java/org/apache/empire/db/DBView.java | 4 ----
4 files changed, 28 insertions(+), 20 deletions(-)
diff --git
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
index 1aabb1b8..e6216700 100644
---
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
+++
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
@@ -924,13 +924,9 @@ public class TagEncodingHelper implements NamingContainer
if (!(record instanceof Record))
return true;
}
- else
- { // Value expression required
- if (!hasValueExpression())
- return true; // No Value expression given
- // check attribute
- Object val = getTagAttributeValue("readonly");
- return ObjectUtils.getBoolean(val);
+ else if (!hasValueExpression())
+ { // No Value expression given
+ return true;
}
// check attribute
Object val = getTagAttributeValue("readonly");
@@ -938,6 +934,9 @@ public class TagEncodingHelper implements NamingContainer
{ // override
return ObjectUtils.getBoolean(val);
}
+ // if value expression, don't check further
+ if (hasValueExpression())
+ return null;
// check record component
if (recordTag != null && recordTag.isReadOnly())
return true;
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
index 933db2bf..1ef6e550 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
@@ -924,13 +924,9 @@ public class TagEncodingHelper implements NamingContainer
if (!(record instanceof Record))
return true;
}
- else
- { // Value expression required
- if (!hasValueExpression())
- return true; // No Value expression given
- // check attribute
- Object val = getTagAttributeValue("readonly");
- return ObjectUtils.getBoolean(val);
+ else if (!hasValueExpression())
+ { // No Value expression given
+ return true;
}
// check attribute
Object val = getTagAttributeValue("readonly");
@@ -938,6 +934,9 @@ public class TagEncodingHelper implements NamingContainer
{ // override
return ObjectUtils.getBoolean(val);
}
+ // if value expression, don't check further
+ if (hasValueExpression())
+ return null;
// check record component
if (recordTag != null && recordTag.isReadOnly())
return true;
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
index b4c52f2e..67eabbd9 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
@@ -95,6 +95,7 @@ public class DBQuery extends DBRowSet
protected final DBColumn[] keyColumns;
protected final DBQueryColumn[] queryColumns;
protected final String alias;
+ protected boolean updateable;
/**
* Constructor initializes the query object.
@@ -129,6 +130,7 @@ public class DBQuery extends DBRowSet
}
// Set the key Column
this.keyColumns = keyColumns;
+ this.updateable = false;
}
/**
@@ -169,7 +171,7 @@ public class DBQuery extends DBRowSet
}
/**
- * Creaes a DBQuery object from a given command object.
+ * Creates a DBQuery object from a given command object.
*
* @param cmd the command object representing an SQL-Command.
* @param alias the query alias
@@ -223,7 +225,19 @@ public class DBQuery extends DBRowSet
@Override
public boolean isUpdateable()
{
- return (getKeyColumns()!=null);
+ return updateable;
+ }
+
+ /**
+ * Makes the Query updateable. Queries are not updateable by default.
+ * For a query to be updateable it must have key columns
+ */
+ public void setUpdateable(boolean updateable)
+ {
+ if (updateable && getKeyColumns()==null)
+ throw new NotSupportedException(this, "setUpdateable");
+ // set updateable
+ this.updateable = updateable;
}
/**
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 a7c227e7..a0b183c8 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
@@ -137,8 +137,6 @@ public abstract class DBView extends DBRowSet implements
Cloneable
@Override
public boolean isReadOnly()
{
- if (getView().isUpdateable()==false)
- return true;
// Check ReadOnly attribute
if (updateColumn!=null)
return updateColumn.isReadOnly();
@@ -149,8 +147,6 @@ public abstract class DBView extends DBRowSet implements
Cloneable
@Override
public boolean isRequired()
{
- if (getView().isUpdateable()==false)
- return false;
// Check update Column
if (updateColumn==null)
return false;