text:  // Retrieve the document resources from ODWEK 
   byte[] inRes = (byte [])odMap.get(ODTransform.TXFRM_REQ_RES); 
   System.out.println(" Native doc resource size: " + (inRes == null ? null: 
  inRes.length)); 
  
   // Normally this is where you do the transform or do something with the 
  byte data. 
  
   // Let's just concat the resources if there are any to the doc 
   byte[] transformedDoc; 
   if (inRes != null) { 
   transformedDoc = new byte[inRes.length + inDoc.length]; 
   System.arraycopy(inRes, 0, transformedDoc, 0, inRes.length); 
   System.arraycopy(inDoc, 0, transformedDoc, inRes.length, 
  inDoc.length); 
  
   } 
   else 
   transformedDoc = inDoc; 
   System.out.println(" Concatenated resources to doc size: " + 
  transformedDoc.length); 
  
   // Send the transformed data back to ODWEK 
   HashMap rtnMap = new HashMap(); 
   rtnMap.put(ODTransform.TXFRM_RESP_DATA, transformedDoc); 
   return rtnMap; 
   } 
  } 
  
  Example 9-4 on page 214 shows how to set up the HashMap to pass document byte arrays in 
  and out of this custom interface, and how to define a custom Java class that contains the 
  **transformData()**method. 