@Override public boolean transform(DocumentProtos.Media media, String docNewId, MultiTypeParseResult dmBuider, DocumentProtos.MediaContainerOrBuilder mediaToCopy) { DocumentProtos.DocumentWrapperOrBuilder dwo=findWrapperForThisId(docNewId, dmBuider); DocumentProtos.DocumentWrapper.Builder dwb; if (dwo!=null) { dwb=(dwo instanceof DocumentProtos.DocumentWrapper.Builder)? (DocumentProtos.DocumentWrapper.Builder)dwo:((DocumentProtos.DocumentWrapper)dwo).toBuilder(); dmBuider.getDocuments().remove(dwo); } else { dwb=DocumentProtos.DocumentWrapper.newBuilder(); DocumentProtos.MediaContainer.Builder builder=dwb.getMediaContainerBuilder(); for (Media m:mediaToCopy.getMediaList()) { Media.Builder mb=m.toBuilder(); builder.addMedia(mb); } } boolean transform=transform(media, docNewId, dwb.getDocumentMetadataBuilder(),dwb); if (transform) { dpu.setIDFor(dwb, docNewId); dmBuider.add(dwb); } return transform; }