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:
Nick Burch 2013-06-25 23:30:37 +00:00
parent 666841c1e7
commit 9d87fb9caa

View File

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