private void emitValue ( Value value , ContentHandler contentHandler , int propertyType , boolean skipBinary ) throws RepositoryException , SAXException { if ( PropertyType . BINARY == propertyType ) { startElement ( contentHandler , JcrSvLexicon . VALUE , null ) ; // Per section 6.5 of the 1.0.1 spec, we need to emit one empty-value tag for each value if the property is // multi-valued and skipBinary is true if ( ! skipBinary ) { byte [ ] bytes = new byte [ BASE_64_BUFFER_SIZE ] ; int len ; Binary binary = value . getBinary ( ) ; try { InputStream stream = new Base64 . InputStream ( binary . getStream ( ) , Base64 . ENCODE ) ; try { while ( - 1 != ( len = stream . read ( bytes ) ) ) { contentHandler . characters ( new String ( bytes , 0 , len ) . toCharArray ( ) , 0 , len ) ; } } finally { stream . close ( ) ; } } catch ( IOException ioe ) { throw new RepositoryException ( ioe ) ; } finally { binary . dispose ( ) ; } } endElement ( contentHandler , JcrSvLexicon . VALUE ) ; } else { emitValue ( value . getString ( ) , contentHandler ) ; } }
Fires the appropriate SAX events on the content handler to build the XML elements for the value .