mirror of https://github.com/apache/poi.git
Fix to have consistent whitespace
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1496671 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c44ee04a65
commit
546b1e7171
|
@ -40,132 +40,131 @@ import org.apache.poi.util.LittleEndian;
|
|||
* textual form.
|
||||
*/
|
||||
public class HPSFPropertiesExtractor extends POITextExtractor {
|
||||
public HPSFPropertiesExtractor(POITextExtractor mainExtractor) {
|
||||
super(mainExtractor);
|
||||
}
|
||||
public HPSFPropertiesExtractor(POIDocument doc) {
|
||||
super(doc);
|
||||
}
|
||||
public HPSFPropertiesExtractor(POIFSFileSystem fs) {
|
||||
super(new PropertiesOnlyDocument(fs));
|
||||
}
|
||||
public HPSFPropertiesExtractor(NPOIFSFileSystem fs) {
|
||||
super(new PropertiesOnlyDocument(fs));
|
||||
}
|
||||
public HPSFPropertiesExtractor(POITextExtractor mainExtractor) {
|
||||
super(mainExtractor);
|
||||
}
|
||||
public HPSFPropertiesExtractor(POIDocument doc) {
|
||||
super(doc);
|
||||
}
|
||||
public HPSFPropertiesExtractor(POIFSFileSystem fs) {
|
||||
super(new PropertiesOnlyDocument(fs));
|
||||
}
|
||||
public HPSFPropertiesExtractor(NPOIFSFileSystem fs) {
|
||||
super(new PropertiesOnlyDocument(fs));
|
||||
}
|
||||
|
||||
public String getDocumentSummaryInformationText() {
|
||||
DocumentSummaryInformation dsi = document.getDocumentSummaryInformation();
|
||||
StringBuffer text = new StringBuffer();
|
||||
public String getDocumentSummaryInformationText() {
|
||||
DocumentSummaryInformation dsi = document.getDocumentSummaryInformation();
|
||||
StringBuffer text = new StringBuffer();
|
||||
|
||||
// Normal properties
|
||||
text.append( getPropertiesText(dsi) );
|
||||
// Normal properties
|
||||
text.append( getPropertiesText(dsi) );
|
||||
|
||||
// Now custom ones
|
||||
CustomProperties cps = dsi == null ? null : dsi.getCustomProperties();
|
||||
if(cps != null) {
|
||||
Iterator<String> keys = cps.nameSet().iterator();
|
||||
while(keys.hasNext()) {
|
||||
String key = keys.next();
|
||||
String val = getPropertyValueText( cps.get(key) );
|
||||
text.append(key + " = " + val + "\n");
|
||||
}
|
||||
}
|
||||
// Now custom ones
|
||||
CustomProperties cps = dsi == null ? null : dsi.getCustomProperties();
|
||||
if (cps != null) {
|
||||
Iterator<String> keys = cps.nameSet().iterator();
|
||||
while (keys.hasNext()) {
|
||||
String key = keys.next();
|
||||
String val = getPropertyValueText( cps.get(key) );
|
||||
text.append(key + " = " + val + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
// All done
|
||||
return text.toString();
|
||||
}
|
||||
public String getSummaryInformationText() {
|
||||
SummaryInformation si = document.getSummaryInformation();
|
||||
// All done
|
||||
return text.toString();
|
||||
}
|
||||
public String getSummaryInformationText() {
|
||||
SummaryInformation si = document.getSummaryInformation();
|
||||
|
||||
// Just normal properties
|
||||
return getPropertiesText(si);
|
||||
}
|
||||
// Just normal properties
|
||||
return getPropertiesText(si);
|
||||
}
|
||||
|
||||
private static String getPropertiesText(SpecialPropertySet ps) {
|
||||
if(ps == null) {
|
||||
// Not defined, oh well
|
||||
return "";
|
||||
}
|
||||
private static String getPropertiesText(SpecialPropertySet ps) {
|
||||
if (ps == null) {
|
||||
// Not defined, oh well
|
||||
return "";
|
||||
}
|
||||
|
||||
StringBuffer text = new StringBuffer();
|
||||
StringBuffer text = new StringBuffer();
|
||||
|
||||
PropertyIDMap idMap = ps.getPropertySetIDMap();
|
||||
Property[] props = ps.getProperties();
|
||||
for(int i=0; i<props.length; i++) {
|
||||
String type = Long.toString( props[i].getID() );
|
||||
Object typeObj = idMap.get(props[i].getID());
|
||||
if(typeObj != null) {
|
||||
type = typeObj.toString();
|
||||
}
|
||||
PropertyIDMap idMap = ps.getPropertySetIDMap();
|
||||
Property[] props = ps.getProperties();
|
||||
for (int i=0; i<props.length; i++) {
|
||||
String type = Long.toString( props[i].getID() );
|
||||
Object typeObj = idMap.get(props[i].getID());
|
||||
if(typeObj != null) {
|
||||
type = typeObj.toString();
|
||||
}
|
||||
|
||||
String val = getPropertyValueText( props[i].getValue() );
|
||||
text.append(type + " = " + val + "\n");
|
||||
}
|
||||
String val = getPropertyValueText( props[i].getValue() );
|
||||
text.append(type + " = " + val + "\n");
|
||||
}
|
||||
|
||||
return text.toString();
|
||||
}
|
||||
private static String getPropertyValueText(Object val) {
|
||||
if(val == null) {
|
||||
return "(not set)";
|
||||
}
|
||||
if(val instanceof byte[]) {
|
||||
byte[] b = (byte[])val;
|
||||
if(b.length == 0) {
|
||||
return "";
|
||||
}
|
||||
if(b.length == 1) {
|
||||
return Byte.toString(b[0]);
|
||||
}
|
||||
if(b.length == 2) {
|
||||
return Integer.toString( LittleEndian.getUShort(b) );
|
||||
}
|
||||
if(b.length == 4) {
|
||||
return Long.toString( LittleEndian.getUInt(b) );
|
||||
}
|
||||
// Maybe it's a string? who knows!
|
||||
return new String(b);
|
||||
}
|
||||
return val.toString();
|
||||
}
|
||||
return text.toString();
|
||||
}
|
||||
private static String getPropertyValueText(Object val) {
|
||||
if (val == null) {
|
||||
return "(not set)";
|
||||
}
|
||||
if (val instanceof byte[]) {
|
||||
byte[] b = (byte[])val;
|
||||
if (b.length == 0) {
|
||||
return "";
|
||||
}
|
||||
if (b.length == 1) {
|
||||
return Byte.toString(b[0]);
|
||||
}
|
||||
if (b.length == 2) {
|
||||
return Integer.toString( LittleEndian.getUShort(b) );
|
||||
}
|
||||
if (b.length == 4) {
|
||||
return Long.toString( LittleEndian.getUInt(b) );
|
||||
}
|
||||
// Maybe it's a string? who knows!
|
||||
return new String(b);
|
||||
}
|
||||
return val.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the text of all the properties defined in
|
||||
* the document.
|
||||
*/
|
||||
public String getText() {
|
||||
return getSummaryInformationText() + getDocumentSummaryInformationText();
|
||||
}
|
||||
/**
|
||||
* @return the text of all the properties defined in
|
||||
* the document.
|
||||
*/
|
||||
public String getText() {
|
||||
return getSummaryInformationText() + getDocumentSummaryInformationText();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent recursion!
|
||||
*/
|
||||
public POITextExtractor getMetadataTextExtractor() {
|
||||
throw new IllegalStateException("You already have the Metadata Text Extractor, not recursing!");
|
||||
}
|
||||
/**
|
||||
* Prevent recursion!
|
||||
*/
|
||||
public POITextExtractor getMetadataTextExtractor() {
|
||||
throw new IllegalStateException("You already have the Metadata Text Extractor, not recursing!");
|
||||
}
|
||||
|
||||
/**
|
||||
* So we can get at the properties of any
|
||||
* random OLE2 document.
|
||||
*/
|
||||
private static final class PropertiesOnlyDocument extends POIDocument {
|
||||
public PropertiesOnlyDocument(NPOIFSFileSystem fs) {
|
||||
super(fs.getRoot());
|
||||
}
|
||||
public PropertiesOnlyDocument(POIFSFileSystem fs) {
|
||||
super(fs);
|
||||
}
|
||||
/**
|
||||
* So we can get at the properties of any
|
||||
* random OLE2 document.
|
||||
*/
|
||||
private static final class PropertiesOnlyDocument extends POIDocument {
|
||||
public PropertiesOnlyDocument(NPOIFSFileSystem fs) {
|
||||
super(fs.getRoot());
|
||||
}
|
||||
public PropertiesOnlyDocument(POIFSFileSystem fs) {
|
||||
super(fs);
|
||||
}
|
||||
|
||||
public void write(OutputStream out) {
|
||||
throw new IllegalStateException("Unable to write, only for properties!");
|
||||
}
|
||||
}
|
||||
public void write(OutputStream out) {
|
||||
throw new IllegalStateException("Unable to write, only for properties!");
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
for(String file : args) {
|
||||
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(
|
||||
new NPOIFSFileSystem(new File(file))
|
||||
);
|
||||
System.out.println(ext.getText());
|
||||
}
|
||||
}
|
||||
public static void main(String[] args) throws IOException {
|
||||
for (String file : args) {
|
||||
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(
|
||||
new NPOIFSFileSystem(new File(file)));
|
||||
System.out.println(ext.getText());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue