List of usage examples for org.apache.poi.hpsf Section getPIDString
public String getPIDString(final long pid)
From source file:com.villemos.ispace.aperture.enricher.MicrosoftPropertyReader.java
License:Open Source License
public void processPOIFSReaderEvent(final POIFSReaderEvent event) { PropertySet ps = null;//from w ww. j a v a 2 s . c o m try { ps = PropertySetFactory.create(event.getStream()); } catch (NoPropertySetStreamException ex) { LOG.debug("No property set stream: \"" + event.getPath() + event.getName() + "\""); return; } catch (Exception ex) { LOG.error("Exception while processing microsoft property set " + ex); } /* Print the name of the property set stream: */ LOG.debug("Property set stream \"" + event.getPath() + event.getName() + "\":"); /* Print the list of sections: */ List<Section> sections = ps.getSections(); int nr = 0; for (Section sec : sections) { String s = HexDump.dump(sec.getFormatID().getBytes(), 0L, 0); s = s.substring(0, s.length() - 1); /* Print the number of properties in this section. */ int propertyCount = sec.getPropertyCount(); /* Print the properties: */ Property[] properties = sec.getProperties(); for (int i2 = 0; i2 < properties.length; i2++) { /* Print a single property: */ Property p = properties[i2]; long id = p.getID(); long type = p.getType(); Object value = p.getValue(); String propertyName = sec.getPIDString(id); if (msProperties.containsKey(propertyName) == false) { String valueStr = value.toString(); if (valueStr.equals("") == false) { msProperties.put(propertyName, valueStr); } } } } }
From source file:poi.poifs.poibrowser.PropertySetDescriptorRenderer.java
License:Apache License
/** * <p>Returns a string representation of a {@link Section}.</p> * @param s the section/* w ww . j a v a2 s . com*/ * @param name the section's name * @return a string representation of the {@link Section} */ protected String toString(final Section s, final String name) { final StringBuffer b = new StringBuffer(); b.append("\n" + name + " Format ID: "); b.append(Codec.hexEncode(s.getFormatID())); b.append("\n" + name + " Offset: " + s.getOffset()); b.append("\n" + name + " Section size: " + s.getSize()); b.append("\n" + name + " Property count: " + s.getPropertyCount()); final Property[] properties = s.getProperties(); for (int i = 0; i < properties.length; i++) { final Property p = properties[i]; final long id = p.getID(); final long type = p.getType(); final Object value = p.getValue(); b.append('\n'); b.append(name); b.append(", Name: "); b.append(id); b.append(" ("); b.append(s.getPIDString(id)); b.append("), Type: "); b.append(type); b.append(", Value: "); if (value instanceof byte[]) { byte[] b2 = (byte[]) value; b.append("0x" + Codec.hexEncode(b2, 0, 4)); b.append(' '); b.append("0x" + Codec.hexEncode(b2, 4, b2.length - 4)); } else if (value != null) b.append(value.toString()); else b.append("null"); } return b.toString(); }