You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2008/10/04 06:59:26 UTC

svn commit: r701598 - in /poi/trunk/src/java/org/apache/poi/ss/formula: CellLocation.java CollaboratingWorkbooksEnvironment.java EvaluationCache.java WorkbookEvaluator.java

Author: josh
Date: Fri Oct  3 21:59:26 2008
New Revision: 701598

URL: http://svn.apache.org/viewvc?rev=701598&view=rev
Log:
changed workbook reference to index in CellLocation

Modified:
    poi/trunk/src/java/org/apache/poi/ss/formula/CellLocation.java
    poi/trunk/src/java/org/apache/poi/ss/formula/CollaboratingWorkbooksEnvironment.java
    poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java
    poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/CellLocation.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/CellLocation.java?rev=701598&r1=701597&r2=701598&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/CellLocation.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/CellLocation.java Fri Oct  3 21:59:26 2008
@@ -25,24 +25,24 @@
 final class CellLocation {
 	public static final CellLocation[] EMPTY_ARRAY = { };
 	
-	private final EvaluationWorkbook _book;
+	private final int _bookIx;
 	private final int _sheetIndex;
 	private final int _rowIndex;
 	private final int _columnIndex;
 	private final int _hashCode;
 
-	public CellLocation(EvaluationWorkbook book, int sheetIndex, int rowIndex, int columnIndex) {
+	public CellLocation(int bookIx, int sheetIndex, int rowIndex, int columnIndex) {
 		if (sheetIndex < 0) {
 			throw new IllegalArgumentException("sheetIndex must not be negative");
 		}
-		_book = book;
+		_bookIx = bookIx;
 		_sheetIndex = sheetIndex;
 		_rowIndex = rowIndex;
 		_columnIndex = columnIndex;
-		_hashCode = System.identityHashCode(book) + sheetIndex + 17 * (rowIndex + 17 * columnIndex);
+		_hashCode = _bookIx + 17 * (sheetIndex + 17 * (rowIndex + 17 * columnIndex));
 	}
-	public Object getBook() {
-		return _book;
+	public int getBookIndex() {
+		return _bookIx;
 	}
 	public int getSheetIndex() {
 		return _sheetIndex;
@@ -65,7 +65,7 @@
 		if (getSheetIndex() != other.getSheetIndex()) {
 			return false;
 		}
-		if (getBook() != other.getBook()) {
+		if (getBookIndex() != other.getBookIndex()) {
 			return false;
 		}
 		return true;

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/CollaboratingWorkbooksEnvironment.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/CollaboratingWorkbooksEnvironment.java?rev=701598&r1=701597&r2=701598&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/CollaboratingWorkbooksEnvironment.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/CollaboratingWorkbooksEnvironment.java Fri Oct  3 21:59:26 2008
@@ -97,7 +97,7 @@
 		EvaluationCache cache = new EvaluationCache(evalListener);
 		
 		for(int i=0; i<nItems; i++) {
-			evaluators[i].attachToEnvironment(env, cache);
+			evaluators[i].attachToEnvironment(env, cache, i);
 		}
 		
 	}

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java?rev=701598&r1=701597&r2=701598&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java Fri Oct  3 21:59:26 2008
@@ -203,7 +203,7 @@
 			CellLocation clB = (CellLocation) b;
 			
 			int cmp;
-			cmp = System.identityHashCode(clA.getBook()) - System.identityHashCode(clB.getBook());
+			cmp = clA.getBookIndex() - clB.getBookIndex();
 			if (cmp != 0) {
 				return cmp;
 			}

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java?rev=701598&r1=701597&r2=701598&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java Fri Oct  3 21:59:26 2008
@@ -80,6 +80,7 @@
 
 	private final EvaluationWorkbook _workbook;
 	private EvaluationCache _cache;
+	private int _workbookIx;
 
 	private final IEvaluationListener _evaluationListener;
 	private final Map _sheetIndexesBySheet;
@@ -94,6 +95,7 @@
 		_cache = new EvaluationCache(evaluationListener);
 		_sheetIndexesBySheet = new IdentityHashMap();
 		_collaboratingWorkbookEnvironment = CollaboratingWorkbooksEnvironment.EMPTY;
+		_workbookIx = 0;
 	}
 
 	/**
@@ -111,9 +113,10 @@
 			System.out.println(s);
 		}
 	}
-	/* package */ void attachToEnvironment(CollaboratingWorkbooksEnvironment collaboratingWorkbooksEnvironment, EvaluationCache cache) {
+	/* package */ void attachToEnvironment(CollaboratingWorkbooksEnvironment collaboratingWorkbooksEnvironment, EvaluationCache cache, int workbookIx) {
 		_collaboratingWorkbookEnvironment = collaboratingWorkbooksEnvironment;
 		_cache = cache;
+		_workbookIx = workbookIx;
 	}
 	/* package */ CollaboratingWorkbooksEnvironment getEnvironment() {
 		return _collaboratingWorkbookEnvironment;
@@ -122,6 +125,7 @@
 	/* package */ void detachFromEnvironment() {
 		_collaboratingWorkbookEnvironment = CollaboratingWorkbooksEnvironment.EMPTY;
 		_cache = new EvaluationCache(_evaluationListener);
+		_workbookIx = 0;
 	}
 	/* package */ IEvaluationListener getEvaluationListener() {
 		return _evaluationListener;
@@ -148,7 +152,7 @@
 			throw new IllegalArgumentException("value must not be null");
 		}
 		int sheetIndex = getSheetIndex(sheet);
-		_cache.setValue(new CellLocation(_workbook, sheetIndex, rowIndex, columnIndex), true, CellLocation.EMPTY_ARRAY, value);
+		_cache.setValue(getCellLoc(sheetIndex, rowIndex, columnIndex), true, CellLocation.EMPTY_ARRAY, value);
 
 	}
 	/**
@@ -157,7 +161,7 @@
 	 */
 	public void notifySetFormula(HSSFSheet sheet, int rowIndex, int columnIndex) {
 		int sheetIndex = getSheetIndex(sheet);
-		_cache.setValue(new CellLocation(_workbook, sheetIndex, rowIndex, columnIndex), false, CellLocation.EMPTY_ARRAY, null);
+		_cache.setValue(getCellLoc(sheetIndex, rowIndex, columnIndex), false, CellLocation.EMPTY_ARRAY, null);
 
 	}
 	private int getSheetIndex(HSSFSheet sheet) {
@@ -175,7 +179,7 @@
 
 	public ValueEval evaluate(HSSFCell srcCell) {
 		int sheetIndex = getSheetIndex(srcCell.getSheet());
-		CellLocation cellLoc = new CellLocation(_workbook, sheetIndex, srcCell.getRowIndex(), srcCell.getCellNum());
+		CellLocation cellLoc = getCellLoc(sheetIndex, srcCell.getRowIndex(), srcCell.getCellNum());
 		return internalEvaluate(srcCell, cellLoc, new EvaluationTracker(_cache));
 	}
 
@@ -471,8 +475,11 @@
 		} else {
 			cell = row.getCell(columnIndex);
  		}
-		CellLocation cellLoc = new CellLocation(_workbook, sheetIndex, rowIndex, columnIndex);
+		CellLocation cellLoc = getCellLoc(sheetIndex, rowIndex, columnIndex);
 		tracker.acceptDependency(cellLoc);
 		return internalEvaluate(cell, cellLoc, tracker);
 	}
+	private CellLocation getCellLoc(int sheetIndex, int rowIndex, int columnIndex) {
+		return new CellLocation(_workbookIx, sheetIndex, rowIndex, columnIndex);
+	}
 }



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