You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2016/06/19 23:02:43 UTC

svn commit: r1749226 - /poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java

Author: onealj
Date: Sun Jun 19 23:02:43 2016
New Revision: 1749226

URL: http://svn.apache.org/viewvc?rev=1749226&view=rev
Log:
bug 56958: replace java.awt.Rectangle#intersects with native implementation to determine if CellRangeAddresses intersect; patch from Yaniv Kunda

Modified:
    poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java

Modified: poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java?rev=1749226&r1=1749225&r2=1749226&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java Sun Jun 19 23:02:43 2016
@@ -17,15 +17,13 @@
 
 package org.apache.poi.ss.util;
 
-import java.awt.Rectangle;
-
 import org.apache.poi.ss.SpreadsheetVersion;
 
 
 /**
  * See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'<p/>
  *
- * Common subclass of 8-bit and 16-bit versions
+ * Common superclass of 8-bit and 16-bit versions
  */
 public abstract class CellRangeAddressBase {
 
@@ -133,37 +131,12 @@ public abstract class CellRangeAddressBa
 	 * @return returns true if this range and other range have at least 1 cell in common
 	 */
 	public boolean intersects(CellRangeAddressBase other) {
-		// see java.awt.Rectangle.intersects
-		// http://stackoverflow.com/questions/13390333/two-rectangles-intersection
-	    
-		// TODO: Replace with an intersection code that doesn't rely on java.awt
-		return getRectangle().intersects(other.getRectangle());
+		return this._firstRow <= other._lastRow &&
+				this._firstCol <= other._lastCol &&
+				other._firstRow <= this._lastRow &&
+				other._firstCol <= this._lastCol;
 	}
 	
-	// TODO: Replace with an intersection code that doesn't rely on java.awt
-	// Don't let this temporary implementation detail leak outside of this class
-	private final Rectangle getRectangle() {
-		int firstRow, firstCol, lastRow, lastCol;
-		
-		if (!isFullColumnRange()) {
-			firstRow = Math.min(_firstRow, _lastRow);
-			lastRow = Math.max(_firstRow,  _lastRow);
-		}
-		else {
-			firstRow = 0;
-			lastRow = Integer.MAX_VALUE;
-		}
-		if (!isFullRowRange()) {
-			firstCol = Math.min(_firstCol, _lastCol);
-			lastCol = Math.max(_firstCol, _lastCol);
-		}
-		else {
-			firstCol = 0;
-			lastCol = Integer.MAX_VALUE;
-		}
-		return new Rectangle(firstRow, firstCol, lastRow-firstRow+1, lastCol-firstCol+1);
-	}
-
 	/**
 	 * @param firstCol column number for the upper left hand corner
 	 */



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org