/** * Merge the two result sets * * @param firstResult * first set * @param secondResult * second set * @return the merged result */ protected WriteAttributeResults mergeResults ( final WriteAttributeResults firstResult, final WriteAttributeResults secondResult ) { final WriteAttributeResults newResults = new WriteAttributeResults (); if ( firstResult != null ) { newResults.putAll ( firstResult ); } if ( secondResult != null ) { newResults.putAll ( secondResult ); } return newResults; }
@Override protected WriteAttributeResults handleUnhandledAttributes ( final WriteAttributeResults initialResults, final Map<String, Variant> attributes ) { // check for null WriteAttributeResults writeAttributeResults = initialResults; if ( writeAttributeResults == null ) { writeAttributeResults = new WriteAttributeResults (); } // gather the list of open requests final Map<String, Variant> requests = new HashMap<String, Variant> ( 0 ); for ( final Map.Entry<String, Variant> entry : attributes.entrySet () ) { if ( !writeAttributeResults.containsKey ( entry.getKey () ) ) { requests.put ( entry.getKey (), entry.getValue () ); } } writeAttributeResults.putAll ( this.variable.handleAttributes ( requests ) ); // default for the rest return super.handleUnhandledAttributes ( writeAttributeResults, attributes ); }
private static WriteRequestResult mergeNextResult ( final WriteRequestResult finalResult, final WriteRequestResult nextResult ) { if ( nextResult.getError () != null ) { return nextResult; } // merge current and previous results final WriteAttributeResults result = new WriteAttributeResults (); if ( nextResult.getAttributeResults () != null ) { result.putAll ( nextResult.getAttributeResults () ); } if ( finalResult.getAttributeResults () != null ) { result.putAll ( finalResult.getAttributeResults () ); } return new WriteRequestResult ( nextResult.getValue (), nextResult.getAttributes (), result ); }