You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ma...@apache.org on 2011/04/14 12:05:05 UTC
svn commit: r1092089 -
/poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java
Author: maxcom
Date: Thu Apr 14 10:05:04 2011
New Revision: 1092089
URL: http://svn.apache.org/viewvc?rev=1092089&view=rev
Log:
XSSF: reduce memory usage by specifing default namespace for string keys in SharedStringsTable
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java?rev=1092089&r1=1092088&r2=1092089&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java Thu Apr 14 10:05:04 2011
@@ -20,10 +20,7 @@ package org.apache.poi.xssf.model;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlOptions;
@@ -86,6 +83,14 @@ public class SharedStringsTable extends
private SstDocument _sstDoc;
+ private final static XmlOptions options = new XmlOptions();
+ static {
+ options.put( XmlOptions.SAVE_INNER );
+ options.put( XmlOptions.SAVE_AGGRESSIVE_NAMESPACES );
+ options.put( XmlOptions.SAVE_USE_DEFAULT_NAMESPACE );
+ options.setSaveImplicitNamespaces(Collections.singletonMap("", "http://schemas.openxmlformats.org/spreadsheetml/2006/main"));
+ }
+
public SharedStringsTable() {
super();
_sstDoc = SstDocument.Factory.newInstance();
@@ -112,7 +117,7 @@ public class SharedStringsTable extends
count = (int)sst.getCount();
uniqueCount = (int)sst.getUniqueCount();
for (CTRst st : sst.getSiArray()) {
- stmap.put(st.toString(), cnt);
+ stmap.put(getKey(st), cnt);
strings.add(st);
cnt++;
}
@@ -121,6 +126,10 @@ public class SharedStringsTable extends
}
}
+ private String getKey(CTRst st) {
+ return st.xmlText(options);
+ }
+
/**
* Return a string item by index
*
@@ -164,7 +173,7 @@ public class SharedStringsTable extends
* @return index the index of added entry
*/
public int addEntry(CTRst st) {
- String s = st.toString();
+ String s = getKey(st);
count++;
if (stmap.containsKey(s)) {
return stmap.get(s);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org