|
Author: erwan
Date: Tue Oct 30 21:10:10 2012 New Revision: 1403870 URL: http://svn.apache.org/viewvc?rev=1403870&view=rev Log: Applying a patch from Olivier Heintz on branch OFBIZ-4949 add a new attribute for for entity-engine-xml tag, put-other-field-to-null= true, if it exist at the beginning data file, all update will put to null all field not detail in this file Modified: ofbiz/branches/20120329_portletWidget/framework/entity/src/org/ofbiz/entity/util/EntitySaxReader.java Modified: ofbiz/branches/20120329_portletWidget/framework/entity/src/org/ofbiz/entity/util/EntitySaxReader.java URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/entity/src/org/ofbiz/entity/util/EntitySaxReader.java?rev=1403870&r1=1403869&r2=1403870&view=diff ============================================================================== --- ofbiz/branches/20120329_portletWidget/framework/entity/src/org/ofbiz/entity/util/EntitySaxReader.java (original) +++ ofbiz/branches/20120329_portletWidget/framework/entity/src/org/ofbiz/entity/util/EntitySaxReader.java Tue Oct 30 21:10:10 2012 @@ -88,6 +88,7 @@ public class EntitySaxReader implements protected boolean checkDataOnly = false; protected boolean doCacheClear = true; protected boolean disableEeca = false; + protected boolean setOtherFieldsToNull = false; protected List<Object> messageList = null; protected List<GenericValue> valuesToWrite = new ArrayList<GenericValue>(valuesPerWrite); @@ -202,6 +203,14 @@ public class EntitySaxReader implements } } + public boolean getSetOtherFieldsToNull() { + return this.setOtherFieldsToNull; + } + + public void setSetOtherFieldsToNull(boolean _setOtherFieldsToNull) { + this.setOtherFieldsToNull = _setOtherFieldsToNull; + } + public long parse(String content) throws SAXException, java.io.IOException { if (content == null) { Debug.logWarning("content was null, doing nothing", module); @@ -493,6 +502,12 @@ public class EntitySaxReader implements this.setCreateDummyFks("true".equalsIgnoreCase(dummyFk.toString())); } + // check if other fields should be set to null + CharSequence _setOtherFieldsToNull = attributes.getValue("set-other-fields-to-null"); + if (_setOtherFieldsToNull != null) { + this.setSetOtherFieldsToNull("true".equalsIgnoreCase(_setOtherFieldsToNull.toString())); + } + return; } @@ -575,6 +590,16 @@ public class EntitySaxReader implements Debug.logWarning(e, "Could not set field " + entityName + "." + name + " to the value " + value, module); } } + if (this.getSetOtherFieldsToNull()) { + ModelEntity currentEntity = currentValue.getModelEntity(); + for (String fieldName : currentEntity.getAllFieldNames() ){ + if ( ! ModelEntity.STAMP_FIELD.equals(fieldName) && ! ModelEntity.STAMP_TX_FIELD.equals(fieldName) + && ! ModelEntity.CREATE_STAMP_FIELD.equals(fieldName) && ! ModelEntity.CREATE_STAMP_TX_FIELD.equals(fieldName) + && currentValue.get(fieldName) == null ) { + currentValue.set(fieldName, null); + } + } + } } } } |
| Free forum by Nabble | Edit this page |
