mirror of https://github.com/apache/poi.git
make ReadOnlySharedStringsTable subclassable
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1836627 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
555923c40b
commit
a99abc5ff8
|
@ -23,9 +23,7 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.PushbackInputStream;
|
import java.io.PushbackInputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||||
import org.apache.poi.openxml4j.opc.PackagePart;
|
import org.apache.poi.openxml4j.opc.PackagePart;
|
||||||
|
@ -79,31 +77,26 @@ import org.xml.sax.helpers.DefaultHandler;
|
||||||
*/
|
*/
|
||||||
public class ReadOnlySharedStringsTable extends DefaultHandler {
|
public class ReadOnlySharedStringsTable extends DefaultHandler {
|
||||||
|
|
||||||
private final boolean includePhoneticRuns;
|
protected final boolean includePhoneticRuns;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An integer representing the total count of strings in the workbook. This count does not
|
* An integer representing the total count of strings in the workbook. This count does not
|
||||||
* include any numbers, it counts only the total of text strings in the workbook.
|
* include any numbers, it counts only the total of text strings in the workbook.
|
||||||
*/
|
*/
|
||||||
private int count;
|
protected int count;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An integer representing the total count of unique strings in the Shared String Table.
|
* An integer representing the total count of unique strings in the Shared String Table.
|
||||||
* A string is unique even if it is a copy of another string, but has different formatting applied
|
* A string is unique even if it is a copy of another string, but has different formatting applied
|
||||||
* at the character level.
|
* at the character level.
|
||||||
*/
|
*/
|
||||||
private int uniqueCount;
|
protected int uniqueCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The shared strings table.
|
* The shared strings table.
|
||||||
*/
|
*/
|
||||||
private List<String> strings;
|
private List<String> strings;
|
||||||
|
|
||||||
/**
|
|
||||||
* Map of phonetic strings (if they exist) indexed
|
|
||||||
* with the integer matching the index in strings
|
|
||||||
*/
|
|
||||||
private Map<Integer, String> phoneticStrings;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calls {{@link #ReadOnlySharedStringsTable(OPCPackage, boolean)}} with
|
* Calls {{@link #ReadOnlySharedStringsTable(OPCPackage, boolean)}} with
|
||||||
* a value of <code>true</code> for including phonetic runs
|
* a value of <code>true</code> for including phonetic runs
|
||||||
|
@ -240,7 +233,6 @@ public class ReadOnlySharedStringsTable extends DefaultHandler {
|
||||||
if(uniqueCount != null) this.uniqueCount = Integer.parseInt(uniqueCount);
|
if(uniqueCount != null) this.uniqueCount = Integer.parseInt(uniqueCount);
|
||||||
|
|
||||||
this.strings = new ArrayList<>(this.uniqueCount);
|
this.strings = new ArrayList<>(this.uniqueCount);
|
||||||
this.phoneticStrings = new HashMap<>();
|
|
||||||
characters = new StringBuilder(64);
|
characters = new StringBuilder(64);
|
||||||
} else if ("si".equals(localName)) {
|
} else if ("si".equals(localName)) {
|
||||||
characters.setLength(0);
|
characters.setLength(0);
|
||||||
|
@ -255,8 +247,7 @@ public class ReadOnlySharedStringsTable extends DefaultHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void endElement(String uri, String localName, String name)
|
public void endElement(String uri, String localName, String name) throws SAXException {
|
||||||
throws SAXException {
|
|
||||||
if (uri != null && ! uri.equals(NS_SPREADSHEETML)) {
|
if (uri != null && ! uri.equals(NS_SPREADSHEETML)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -273,8 +264,7 @@ public class ReadOnlySharedStringsTable extends DefaultHandler {
|
||||||
/**
|
/**
|
||||||
* Captures characters only if a t(ext) element is open.
|
* Captures characters only if a t(ext) element is open.
|
||||||
*/
|
*/
|
||||||
public void characters(char[] ch, int start, int length)
|
public void characters(char[] ch, int start, int length) throws SAXException {
|
||||||
throws SAXException {
|
|
||||||
if (tIsOpen) {
|
if (tIsOpen) {
|
||||||
if (inRPh && includePhoneticRuns) {
|
if (inRPh && includePhoneticRuns) {
|
||||||
characters.append(ch, start, length);
|
characters.append(ch, start, length);
|
||||||
|
|
Loading…
Reference in New Issue