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 2019/11/20 15:07:10 UTC
[empire-db] branch master updated: EMPIREDB-319 improvement
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
View the commit online:
https://github.com/apache/empire-db/commit/831e97aef1b6e56e482ac1d72eba9c0450a1c12f
The following commit(s) were added to refs/heads/master by this push:
new 831e97a EMPIREDB-319 improvement
831e97a is described below
commit 831e97aef1b6e56e482ac1d72eba9c0450a1c12f
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Wed Nov 20 16:07:05 2019 +0100
EMPIREDB-319
improvement
---
.../main/java/org/apache/empire/db/DBRecord.java | 33 +++++++++++-----------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
index 54a64a4..407cf73 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
@@ -574,32 +574,30 @@ public class DBRecord extends DBRecordData implements Record, Cloneable
* Modifies a column value bypassing all checks made by setValue.
* Use this to explicitly set invalid values i.e. for temporary storage.
*
- * @param i index of the column
+ * @param index index of the column
* @param value the column value
*/
- protected void modifyValue(int i, Object value, boolean fireChangeEvent)
+ protected void modifyValue(int index, Object value, boolean fireChangeEvent)
{ // Check valid
if (state == State.Invalid)
throw new ObjectNotValidException(this);
- // must have been fetched
- if (fields[i]==ObjectUtils.NO_VALUE)
- throw new FieldValueNotFetchedException(getColumn(i));
- // Init original values
+ if (index < 0 || index >= fields.length)
+ throw new InvalidArgumentException("index", index);
+ // modified state array
if (modified == null)
- { // Save all original values
- modified = new boolean[fields.length];
+ { modified = new boolean[fields.length];
for (int j = 0; j < fields.length; j++)
modified[j] = false;
}
- // Set Value and Modified
- fields[i] = value;
- modified[i] = true;
- // Set State
+ // set value and modified
+ fields[index] = value;
+ modified[index] = true;
+ // set record state
if (state.isLess(State.Modified))
changeState(State.Modified);
- // field changed
+ // field changed event
if (fireChangeEvent)
- onFieldChanged(i);
+ onFieldChanged(index);
}
/**
@@ -644,9 +642,12 @@ public class DBRecord extends DBRecordData implements Record, Cloneable
// Strings special
if ((value instanceof String) && ((String)value).length()==0)
value = null;
- // Has Value changed?
+ // Is value valid
Object current = fields[index];
- if (current!=ObjectUtils.NO_VALUE && ObjectUtils.compareEqual(current, value))
+ if (current==ObjectUtils.NO_VALUE)
+ throw new FieldValueNotFetchedException(getColumn(index));
+ // Has Value changed?
+ if (ObjectUtils.compareEqual(current, value))
return; // no change
// Field has changed
DBColumn column = rowset.getColumn(index);